为什么JS和Python的MD5加密结果返回类型不同?

为什么js和python的md5加密结果返回类型不同?

js和python经过md5处理后的结果返回类型不同的原因

在给出的问题中,经过md5加密后的结果在js和python中返回类型不同。这是因为python默认返回哈希值本身,而js使用了一个库来计算哈希值,并将结果作为字符串返回。

以下是对该问题的详细解释:

  • python

    • 使用 hashlib.md5() 函数对数据进行md5加密。
    • 返回值是一个不可变的字节对象,表示md5哈希值。
    • 想要打印可读的十六进制字符串,需要使用 .hex() 函数将字节对象转换为字符串。
import hashlib

decodeiv = "ydsecret://query/iv/c@lze2yzhtz2cygaxksvfsb7y4qwhjitppz0nqp87fbej!iv6v^6fvi2wn@bypj4"
res = hashlib.md5(decodeiv.encode('utf-8')).digest()
print(res.hex())  # 输出:d2bb1bfde83b38c344366357b79cae1c
  • js:

    • 使用了cryptojs库(之前在html中引用)中的 cryptojs.md5() 函数来进行md5加密。
    • 返回值是一个字符串,可以直接打印。
const decodeiv = "ydsecret://query/iv/C@lZe2YzHtZ2CYgaXKSVfsb7Y4QWHjITPPZ0nQp87fBeJ!Iv6v^6fvi2WN@bYpJ4";
const result = CryptoJS.MD5(decodeiv);
console.log(result.toString());  // 输出:"d2bb1bfde83b38c344366357b79cae1c"

以上就是为什么JS和Python的MD5加密结果返回类型不同?的详细内容,更多请关注硕下网其它相关文章!