SHA1秘密编码,等效于PHP hash_hmac

时间:2018-08-12 05:15:01

标签: go sha1

我具有以下PHP函数

public function encodePassword($raw, $salt)
    {
        return hash_hmac('sha1', $raw . $salt, $this->secret);
    }

我需要翻译成Go。我找到了以下示例,但是它不涉及秘密密钥。 https://gobyexample.com/sha1-hashes

如何在Go中创建一个函数,该函数产生的结果与PHP的hash_hmac完全相同?

  

更新:在Leo回答之后,在以下网址中找到了带有hmac示例的资源   许多语言:https://github.com/danharper/hmac-examples。可   对某人有用。

2 个答案:

答案 0 :(得分:2)

类似这样的东西:

import "crypto/sha1"
import "crypto/hmac"

func hash_hmac_sha1(password, salt, key []byte) []byte {
    h := hmac.New(sha1.New, key)
    h.Write(password)
    h.Write(salt)
    return h.Sum(nil)
}

答案 1 :(得分:0)

类似于此功能:

func decriptSign(message string, key string) string {
    h := hmac.New(sha1.New, []byte(key))
    h.Write([]byte(message))        
    return hex.EncodeToString(h.Sum(nil))
}