当前位置:   article > 正文

国密算法:利用python进行sm3 hash算法,计算hash值,国密算法库gmssl的使用_python实现sm3数据加密

python实现sm3数据加密

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

运行结果:

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/139591
推荐阅读
相关标签
  

闽ICP备14008679号