我在 GoLang 上实现了一段代码,效果很好
package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"golang.org/x/crypto/pbkdf2"
)
func main() {
newPasswd := pbkdf2.Key([]byte("test"), []byte("Gare5vgHIo"), 10000, 50, sha256.New)
fmt.Println(hex.EncodeToString(newPasswd), nil)
}
我正在尝试在 Python 上做同样的事情
def main():
password = b'test'
salt = b'Gare5vgHIo'
iterations = 1000
key = pbkdf2_hmac("sha256", password, salt, iterations, 50)
print(key)
print(key.decode())
但是key.decode()方法会抛出一个错误:
UnicodeDecodeError('utf-8', b'\xd9\xb2;\x0f$\x9a\x9c\t\x91\x16\x81\xb8a\x00\xd8\xdd{e.\xa9\x7f\xe9\x92dH\xa6\x05\x16\xd8\xbb\xfdy\x13\xc5D\x1c\xa2\x93e\xbf{\\\x19\xc1\x8df\xf4\xbft\xe2', 5, 6, 'invalid start byte')
我对 Python 代码做错了什么?
婷婷同学_
相关分类