Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Groovy Java Discussion :

hashage SHA-256 avec résultat en base64


Sujet :

Groovy Java

  1. #1
    Candidat au Club
    hashage SHA-256 avec résultat en base64
    Bonjour à tous,
    je cherche à obtenir un résultat en base 64 au lieu d'hexadéciamle avec le code suivant
    Code groovy :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    static String checksum( String input ) {
    def digest = java.security.MessageDigest.getInstance("SHA-256")
    digest.update( input.bytes )
    new BigInteger(1,digest.digest()).toString(16).padLeft(32, '0')
    }
     def zetest=checksum('hello world') 
    String encoded = zetest.getBytes().encodeBase64().toString()
    log.info(zetest)
    log.info(encoded)

    j'obtiens : hex b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
    je souhaite base 64 : uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=

    une idée? =)

    Merci, bein cdlt

  2. #2
    Membre émérite
    Base 64 veut représenter le digest byte[], et le string hexadécimal a la même intention. Dans le code, vous avez déjà fait un string hexadécimal à partir du digest, si on le représente en base 64, ce n'est pas le but original. Soit on fait ça,
    Code groovy :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    def zetest=checksum('hello world') 
    //String encoded = zetest.getBytes().encodeBase64().toString()
    String encoded = zetest.decodeHex().encodeBase64().toString()

    soit on change la fonction:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    static String checksum( String input ) {
        def digest = java.security.MessageDigest.getInstance("SHA-256")
        digest.update( input.bytes )
        digest.digest().encodeBase64().toString()
    }

###raw>template_hook.ano_emploi###