当前位置: 首页 > 工具软件 > gmssl-python > 使用案例 >

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

盛超
2023-12-01

本篇介绍利用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’

 类似资料: