亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Php pbkdf2 輸出與 golang 不同?

為什么 Php pbkdf2 輸出與 golang 不同?

Go
呼啦一陣風 2022-06-13 15:48:12
我試圖弄清楚這幾個小時。我在 PHP 和 golang 中使用了相同的 pbkdf2 算法,并且輸出有所不同。戈朗saltString := "e7655f410aa38e1ca05de7a7fd8fb84c"password := "vibhor123"salt, err := hex.DecodeString(saltString)if err != nil {    panic(err)}fmt.Println(salt)fmt.Println(fmt.Sprintf("%x", pbkdf2.Key([]byte(input.Password), salt, 4096, sha256.Size, sha256.New)))輸出3d70b8536a7b26d67419e220e1c244a1cc9431a3c23999c2f993d8a3a4dda13aPHP$salt = "e7655f410aa38e1ca05de7a7fd8fb84c";$password = "vibhor123";echo(hash_pbkdf2("sha256", $password, $salt, 4096));輸出a8595b29ddb1a7819bae7e9d8809f26f053b3877197ed44e05e279459a826c64根據我的理解,兩者應該匹配。
查看完整描述

1 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

PHP 的hash_pbkdf2salt 必須以二進制字符串的形式呈現,而不是十六進制字符串。只需使用hex2bin將其轉換為原始二進制文件。見https://3v4l.org/IIXFM。


$salt = "e7655f410aa38e1ca05de7a7fd8fb84c";

$password = "vibhor123";

echo(hash_pbkdf2("sha256", $password, hex2bin($salt), 4096));

3d70b8536a7b26d67419e220e1c244a1cc9431a3c23999c2f993d8a3a4dda13a


查看完整回答
反對 回復 2022-06-13
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號