国密算法:利用python进行sm3 hash算法,计算hash值,国密算法库gmssl的使用

本篇介绍利用gmssl算法库中的sm3模块来进行hash值的计算。

一 sm3 hash算法的特点:

  • sm3用于计算一个消息的hash值;
  • 几乎无法被逆向,即通过hash值无法推断出原始消息;
  • sm3类似于md5,但是比md5安全;sm3是国密算法。

二 sm3算法举例:

import binascii

#导入国密算法sm4包
from gmssl import sm4,sm3

def 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 hash

def 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’

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值