![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
国密算法
文章平均质量分 68
LinDengOne
python小学生
展开
-
基于Python的SM3 Hash及Hmac
目录Hash及HmacHash实现1.填充代码实现2.迭代压缩Hmac实现完整代码Hash及HmacHash算法,主要用于获取摘要值,由于其不可逆向,从而保证明文的完整性。Hmac在Hash的基础上引入了密钥,在Hmac的计算过程中通过两次异或,两次Hash得出消息认证码(摘要)。目前SSL协议、IPsec协议、SSH协议等在通信过程中都使用了Hmac算法保护数据的完整性。Hmac比Hash多了一层安全性,使用Hash算法时如明文与摘要同时被篡改,则无法确保其完整性。使用Hmac算法时,在无法获取密原创 2021-06-02 10:44:30 · 4141 阅读 · 2 评论 -
python实现pkcs7填充
PKCS7填充 以SM4算法为例SM4算法数据块长度为16字节,按照PKCS7填充,最后一个数据块不满16字节时,将针对最后一个数据块补满16字节。如最后一个数据块长度为16字节时,将在尾部填充16个字节的数据。示例:明文为0123456789abcdeffedcba9876543210(16进制)共16个字节此时将在明文后再次补充16个字节的10(16进制),16进制的10为10进制的16,如明文长度为16字节的倍数,将在尾部填充16个10此时填充后的明文为:0123456789abcdef原创 2021-01-18 10:21:03 · 2851 阅读 · 0 评论 -
基于Python的SM4ECB及CBC加密
目录1.算法简述(1)异或(2)轮函数:(3)S盒置换:(4)线性变换L:2.密钥拓展算法3.轮函数实现(1)T合成置换:(2)S盒置换实现:(3)线性变换L实现:4.ECB加解密算法实现:5.CBC加解密算法实现:最近在学习SM4算法,通过代码实现可以更好地理解算法的具体运算过程。1.算法简述SM4分为加解密算法和密钥拓展算法,简单地说就是将128比特数据分为四组,使用轮函数对其进行运算,密钥拓展算法用语生成轮密钥,当使用密钥拓展算法时,轮函数输入为(四组输入数据,固定参数CK),当使用加密算法时轮原创 2021-01-15 23:05:53 · 10118 阅读 · 9 评论