本篇介绍利用gmssl算法库中的sm3模块来进行hash值的计算。
一 sm3 hash算法的特点:
sm3用于计算一个消息的hash值;几乎无法被逆向,即通过hash值无法推断出原始消息;sm3类似于md5,但是比md5安全;sm3是国密算法。二 sm3算法举例:
import binascii#导入国密算法sm4包from gmssl import sm4,sm3def sm3_hash(message:bytes):"""国密sm3加密:param message: 消息值,bytes类型:return: 哈希值"""msg_list = [i for i in message]hash_hex = sm3.sm3_hash(msg_list)print(hash_hex)# bytes2hex(hash_hex);hash_bytes = bytes.fromhex(hash_hex)print(hash_bytes)# return bytes.hash# return hashdef bytes2hex(bytesData):hex = binascii.hexlify(bytesData) print(hex)print(hex.decode())return hex# main if __name__ == '__main__':print("main begin");message = b"123456" # bytes类型sm3_hash(message);
运行结果:
% python3 sm3_t1.py
main begin
207cf410532f92a47dee245ce9b11ff71f578ebd763eb3bbea44ebd043d018fb
b’ |\xf4\x10S/\x92\xa4}\xee$\\xe9\xb1\x1f\xf7\x1fW\x8e\xbdv>\xb3\xbb\xeaD\xeb\xd0C\xd0\x18\xfb’
如果觉得《国密算法:利用python进行sm3 hash算法 计算hash值 国密算法库gmssl的使用》对你有帮助,请点赞、收藏,并留下你的观点哦!