文档详情

密码学实验报告_3.doc

发布:2018-08-18约5.48千字共8页下载文档
文本预览下载声明
哈尔滨工程大学 实 验 报 告 实 验 名 称: DES加密 班 级: 学 号: 姓 名: 实 验 时 间: 2015.6.15 成 绩: 指 导 教 师: 实验室名称: 哈尔滨工程大学实验室与资产管理处 制 一、实验名称 MD5加密 二、实验目的 通过编程实现MD5加密的算法设计,并加深对其的了解。 三、实验环境(实验所使用的器件、仪器设备名称及规格) WindowXP系统计算机 ,Dev C++ 四、实验任务及其要求 根据实验原理部分对MD5加密的介绍,自己创建明文信息,并选择一个密钥,编写MD5加密的实现程序,实现加密和解密操作。 五、实验设计(包括原理图、真值表、分析及简化过程、卡诺图、源代码等) #includeiostream #includestring using namespace std; #define shift(x, n) (((x) (n)) | ((x) (32-(n))))//右移的时候,高位一定要补零,而不是补充符号位 #define F(x, y, z) (((x) (y)) | ((~x) (z))) #define G(x, y, z) (((x) (z)) | ((y) (~z))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) #define A 0x #define B 0xefcdab89 #define C 0x98badcfe #define D 0x //strBaye的长度 unsigned int strlength; //A,B,C,D的临时变量 unsigned int atemp; unsigned int btemp; unsigned int ctemp; unsigned int dtemp; //常量ti unsigned int(abs(sin(i+1))*(2pow32)) const unsigned int k[]={ 0xd76aa478,0xe8c7b756,0xdb,0xc1bdceee, 0xf57c0faf,0x4787c62a,0xa,0xfd,0xd8, 0x8b44f7af,0xffff5bb1,0x895cd7be,0x6b,0xfd, 0xae,0x49b40821,0xf61e2562,0xc040b340,0x265e5a51, 0xe9b6c7aa,0xd62f105d,0x,0xd8a1e681,0xe7d3fbc8, 0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed,0xa9e3e905, 0xfcefa3f8,0x676f02d9,0x8d2a4c8a,0xfffa3942,0x8771f681, 0x6d9d6122,0xfde5380c,0xa4beea44,0x4bdecfa9,0xf6bb4b60, 0xbebfbc70,0x289b7ec6,0xeaa127fa,0xd4ef3085,0x04881d05, 0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665,0xf, 0x432aff97,0xab9423a7,0xfc93a039,0x655b59c3,0x8f0ccc92, 0xffeff47d,0x85845dd1,0x6fa87e4f,0xfe2ce6e0,0xa, 0x4e0811a1,0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391}; //向左位移数 const unsigned int s[]={7,12,17,22,7,12,17,22,7,12,17,22,7, 12,17,22,5,9,
显示全部
相似文档