我有一个使用场景,需要生成JSON
对象的md5
哈希值,并比较服务器和浏览器中的哈希值。
浏览器客户端生成哈希值,然后请求相同资源(即一个JSON对象)在服务器上的哈希值,并比较这两个哈希值以决定下一步做什么。
我在服务器上使用Python
,而浏览器客户端则使用Javascript
。
但是在我的代码中,两种情况下生成的哈希值不匹配。这里是我的代码:
Python:
>>> import hashlib
>>> import json
>>> a = {"candidate" : 5, "data": 1}
>>> a = json.dumps(a, sort_keys = True).encode("utf-8")
>>> hashlib.md5(a).hexdigest()
>>> 12db79ee4a76db2f4fc48624140adc7e
JS:我正在浏览器中使用md5进行哈希处理。
> var hash = require("md5")
> var data = {"candidate":5, "data":1}
> data = JSON.stringify(data)
> md5(data)
> 92e99f0a99ad2a3b5e02f717a2fb83c2
我做错了什么?
md5
不安全。最好使用一些现代的东西,比如sha384
或sha256
。 - Zazmd5
不安全。最好使用一些现代的东西,比如sha384
或sha256
。 - undefined