[英]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.