图7签名及验证签名
3.3.5主要借助循环来完成各种功能的调用如图8所示。
图8综合应用
4、 实验结果及分析
4.1 搭建基于Crypto++库调用的环境。
这一项目比较简单,只需要按照实验指导书上的步骤走即可在调试项目时第一次会报错,但第二次在\\crypto562\\win32\\Output\\Release目录下生成cryptlib.lib文件,具体原因未知,其余步骤一切正常。 4.2 文件加密
采用操作检测,速度快,适合大规模文件的加解密的对称性算法DES算法,编写程序并运行截图如下图10所示。在程序完成后的调试中,我首调试便无法通过如下图9。经过仔细的探研,终于发现因为挪用过CryptoPP文件夹,导致自己的二进制目标文件夹输入错误,致死无法运行。
前期,我完成了第一个程序,输出TXT文件如下图11;后根据教辅的资料编程程序输出如图12所示。
图9目标文件错误
图10文件加密(DES算法)
图11 第一截图
图12.DES输出第二截图
4.3 完整性检测
借助哈希算法(MD-5)完成文件完整性检测,编写程序并运行,且截图如下图12所示。借助于资料终于完成程序编写,但显示“CryptoPP”中无成员“FileSource”,如图11所示。经过多方发现终于知道资料并不一定就对,在加入头文件“#include
图11 缺乏头文件的报错
图12文件完整性检测(MD-5)
4.4 数字签名
依靠非对称性算法(RSA算法)编写程序。运行并截图如下图5所示。生成RSA密钥对,加密,解密,签名,验证签名
图13 数字签名(RSA)
4.5 进阶综合运用
这里有三个cpp文件调用,用起来的很不方便。我们可以用一个程序来实现,是用户更方便。