SM9算法C++实现系列目录:
- 基于JPBC的SM9算法的java实现与测试
- 国密SM9算法C++实现之0:源码下载地址
- 国密SM9算法C++实现之一:算法简介
- 国密SM9算法C++实现之二:测试工具
- 国密SM9算法C++实现之三:椭圆曲线接口、参数初始化
- 国密SM9算法C++实现之四:基本功能函数与KGC接口的实现
- 国密SM9算法C++实现之五:签名验签算法
- 国密SM9算法C++实现之六:密钥封装解封算法
- 国密SM9算法C++实现之七:加密解密算法
- 国密SM9算法C++实现之八:密钥交换算法
- 国密SM9算法C++实现之九:算法功能与测试例子
- 国密SM9算法C++实现之七:加密解密算法
- @[toc]
- 加密算法流程
- 加密结果值
- Cipher.h
- 加密算法实现
- 解密算法流程
- 解密算法实现
根据算法描述,定义接口函数:
对于加密和解密算法中的明文加密方法,这里定义isBaseBlockCipher 参数来指示;同时,加解密算法中有两个长度,一个是用分组密码加密时的K1_len,因为使用的是SM4,所以是固定的16字节;另一个是K2_len,这个是MAC函数的密钥长度。按照MAC函数定义来说,这个长度是可以变的,但最好不小于MAC函数中的哈希函数的哈希值长度,这里因为使用的是SM3,所以默认是32字节。此处提供一个macKeyLen参数表示此K2_len长度,可以根据需要去掉该参数。
加密结果值
SM9加密结果内部包括C1、C2和C3三个部分,对此,也简单将其封装为一个类。这个封装是可取的,可以方便解密时的数据提取。
Cipher.h
加密算法实现
按照加密流程,实现加密算法:
根据算法描述,定义接口函数:
这里的后两个参数在使用时应该和加密时保持一致。
解密算法实现
到此这篇凯撒密码加密算法python作业(jmu-python-凯撒密码加密算法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/pythonbc/18179.html