python - hashlib.sha1 函数每次调用产生不同的结果
问题描述
我有一些带有 sha1 哈希函数的 python3 脚本:
import hashlib
import json
token = '61a1d7435fdfsgsdgdsgfaljaslfjhaslfhlsdf'
data = {"event": "new_data","data": {"user_id":"1","time":"2019-02-14 13:47:39"}}
def genSignature(data, token):
data = dict(sorted(data.items()))
stringData = json.dumps(data,separators=(',', ':'))
print("stringData=", stringData)
fullString = stringData.encode('utf8') + str(token).encode('utf8')
print("fullString=", fullString)
signature = hashlib.sha1(fullString).hexdigest()
print("signature=", signature)
data['data']['signature'] = signature
return data
print("data=", data)
print("token=", token)
print(json.dumps(genSignature(data,token)))
并通过我的 VPS 上的 shell 调用它:
data= {'event': 'new_data', 'data': {'user_id': '1', 'time': '2019-02-14 13:47:39'}}
token= 61a1d7435fdfsgsdgdsgfaljaslfjhaslfhlsdf
stringData= {"event":"new_data","data":{"user_id":"1","time":"2019-02-14 13:47:39"}}
fullString= b'{"event":"new_data","data":{"user_id":"1","time":"2019-02-14 13:47:39"}}61a1d7435fdfsgsdgdsgfaljaslfjhaslfhlsdf'
signature= 8af997ea53683d1ddd2c4823ad655dcfb1ada91f
{"event": "new_data", "data": {"user_id": "1", "signature": "8af997ea53683d1ddd2c4823ad655dcfb1ada91f", "time": "2019-02-14 13:47:39"}}
再一次:
data= {'data': {'time': '2019-02-14 13:47:39', 'user_id': '1'}, 'event': 'new_data'}
token= 61a1d7435fdfsgsdgdsgfaljaslfjhaslfhlsdf
stringData= {"data":{"time":"2019-02-14 13:47:39","user_id":"1"},"event":"new_data"}
fullString= b'{"data":{"time":"2019-02-14 13:47:39","user_id":"1"},"event":"new_data"}61a1d7435fdfsgsdgdsgfaljaslfjhaslfhlsdf'
signature= 14dbc74dac6cbee809a3431fda99bae2537911c7
{"data": {"time": "2019-02-14 13:47:39", "signature": "14dbc74dac6cbee809a3431fda99bae2537911c7", "user_id": "1"}, "event": "new_data"}
并且它具有相同的输入不同的结果。当我在本地机器上启动这个脚本时,每次都有相同的结果。
解决方案
推荐阅读
- php - WooCommerce 产品供应商 - 添加可编辑角色
- sql - 在 oraclesql 中的两个日期之间每月获取数据
- bluetooth-lowenergy - BlueNRG-MS 只允许已知设备连接
- apache-spark - Pyspark中同一列的递归操作
- r - R:操纵日期栏并将非纽约证券交易所交易日期更正为最近的交易日期
- ios - 是否可以在图表视图中隐藏图块的颜色
- django - Django:无法更新模型中的外键值
- python - 如何在这个刽子手游戏中添加重玩功能?
- r - 尝试使用 st_remove_holes 函数时出现问题
- python - 是否有 Instaloader 功能可以从 GraphSidecar 下载有限数量的帖子?