簡體   English   中英

將字符串轉換為 SHA1 和 base64

[英]Convert string to SHA1 and to base64

我在轉換字符串時遇到問題,可以說:“TestPassword”到 SHA1 和 base64。

一般按照那個網站: http : //www.online-convert.com/result/1f76972748a7d186198171e9a11e9493

對於上述密碼,我應該得到以下結果:

hex: 6250625b226df62870ae23af8d3fac0760d71588
HEX: 6250625B226DF62870AE23AF8D3FAC0760D71588
h:e:x: 62:50:62:5b:22:6d:f6:28:70:ae:23:af:8d:3f:ac:07:60:d7:15:88
base64: YlBiWyJt9ihwriOvjT+sB2DXFYg=  <-- That is what I would like to achieve ...

將字符串轉換為 SHA1 沒有問題,但我不知道如何將其再次轉換為 base64,因為需要將每兩個字符視為一個十六進制字節,然后將其傳遞給 base64 函數。

有人可以請說明一下或粘貼代碼片段怎么做嗎?

謝謝!

應該在SHA1摘要的原始二進制版本上執行Base64編碼,而不是它的十六進制編碼。

您可以通過為sha1()函數的$raw_output參數傳遞true來獲取該原始版本:

$base64 = base64_encode(sha1("TestPassword", true));

我認為這是一個遲到的回應,但我通過使用原始md5然后將其轉換為base64達到了確切的價值:

$base64 = base64_encode(hash("md5", "myPassword", true));

嗨,請在終端中運行此命令,

echo 6250625B226DF62870AE23AF8D3FAC0760D71588 | xxd -r -p | openssl base64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM