Suis nouveau pour aller la langue, j'ai besoin de créer un Hmac en langue go. J'ai créé un Hmac dans nodejs, besoin de générer le même Hamc en langue go. Essayé le code suivant mais obtenant exactement la sortie différente. Je ne sais pas ce que je fais mal. C'est ce que j'ai essayéGo lang générer hmac
package main
import (
"crypto/hmac"
"crypto/sha256"
"encoding/base64"
"fmt"
)
func ComputeHmac256(message string, secret string) string {
key := []byte(secret)
h := hmac.New(sha256.New, key)
h.Write([]byte(message))
return base64.StdEncoding.EncodeToString(h.Sum(nil))
}
func main() {
fmt.Println(ComputeHmac256("sms1", "b5fb5b3a65b8429693c3a029308e2e46"))
}
Output: JVN7kUPFL0aQ09lIH4YOsFJA3A2faqTuu6zIaYo61VI=
Besoin d'aller équivalent suivant code nodejs
var crypto = require('crypto'),
text = 'sms1',
key = 'b5fb5b3a65b8429693c3a029308e2e46'
var hash = crypto.createHmac('sha256', key)
hash.update(text)
var value = hash.digest('hex')
// Output
25537b9143c52f4690d3d9481f860eb05240dc0d9f6aa4eebbacc8698a3ad552
Merci beaucoup @Tim. Votre réponse m'a vraiment aidé. – Dibish
Si je veux écrire plus de données dans hmac, Puis-je utiliser h.Write() plusieurs fois? ou dois-je le réinitialiser avant d'écrire la valeur suivante? –