簡體   English   中英

python和java之間sha1加密的結果不同

[英]The results of sha1 encryption are different between python and java

一個應用程序,我需要sha1加密,但python和java之間的結果不同,java是正確的。 因為python中沒有字節對象,所以java字節用於哈希計算。 如何使用python獲得正確的結果?

像往常一樣,差異在於摘要實現(這些都是在所有主要庫中都有正確記錄和正確實現的)。 不同之處在於您如何表示結果數據。

md.digest()返回帶有摘要生成的二進制數據的byte[]

new String(md.digest())嘗試將這些字節解釋為平台默認編碼中的文本,這幾乎肯定不是您想要的。

可能希望摘要以十六進制或Base64編碼表示。

試試這個(確保導入javax.xml.bind.DatatypeConverter ):

String result = DatatypeConverter.printHexBinary(md.digest());

或者,如果您需要Base64,請改用printBase65Binary()

暫無
暫無

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

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