我具有以下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。可 对某人有用。
答案 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))
}