python写一个sm3 hash加密算法代码

代码语言:python

所属分类:其他

代码描述:python写一个sm3 hash加密算法代码

代码标签: python sm3 hash 加密 算法 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

# -*- coding:utf-8 -*-
 
"""
:author: liyebei
:date: 2022-08-06
:description: SM3加密算法。 适用于python2.7+, python3.5+(用python3时暂不支持对中文的加密)
"""
 
# 初始值
iv = 0x7380166f4914b2b9172442d7da8a0600a96f30bc163138aae38dee4db0fb0e4e
MAX = 2 ** 32
 
 
def str2bin(msg):
    """
    字符串转比特串
    :param msg: 字符串
    :return: 转换之后的比特串
    """
    l = len(msg)
    s_dec = 0
    for m in msg:
        s_dec = s_dec << 8
        s_dec += ord(m)
 
    msg_bin = bin(s_dec)[2:].zfill(l * 8)
    return msg_bin
 
 
def int2bin(a, k):
    """
    将整数转化为比特串
    :param a: 待转化的整数
    :param k: 比特串的长度
    :return: 转化后长度为k的比特串
    """
    return bin(a)[2:].zfill(k)
 
 
def int2hex(a, k):
    """
    整数转化为16进制的字符串,前补0补齐k位数
    :param a: 整数
    :param k: 补齐后的字符串长度
    :return: 转化后的16进制形式字符串
    """
    return hex(a)[2:].zfill(k)
 
 
def bin2hex(a, k):
    """
    比特串转化为16进制的字符串,前补0补齐k位数
    :param a: 待转化的比特串
    :param k: 补齐后的字符串长度
    :return: 长.........完整代码请登录后点击上方下载按钮下载查看

网友评论0