sha1加密的结果在python和java之间是不同的

时间:2011-10-26 10:03:29

标签: java python encryption sha1

一个应用程序,我需要sha1加密,但python和java之间的结果不同,java是正确的。 因为python中没有字节对象,而java字节用于哈希计算。 如何使用python获得正确的结果?

1 个答案:

答案 0 :(得分:3)

与往常一样,摘要实现中的差异(这些差异已在所有主要库中正确记录并正确实施)。区别在于您表示结果数据的方式。

md.digest()返回byte[],其中包含摘要生成的二进制数据。

new String(md.digest())尝试将这些字节解释为平台默认编码中的文本,几乎肯定不是您想要的。

可能希望摘要以十六进制或Base64编码表示。

试试这个(确保导入javax.xml.bind.DatatypeConverter):

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

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