云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《计算机信息安全》实验指导书

《计算机信息安全》实验指导书

  • 62 次阅读
  • 3 次下载
  • 2025/5/25 6:11:51

《计算机信息安全》实验指导书

void MD5Update(MD5_CTX *context,unsigned char *input,unsigned int inputLen) {//MD5块处理函数

unsigned int i,index,partLen;

index = (unsigned int)((context->count[0] >> 3) & 0x3F);

if ((context->count[0] += ((UINT4)inputLen << 3))< ((UINT4)inputLen << 3)) context->count[1]++;

context->count[1] += ((UINT4)inputLen >> 29); partLen = 64 - index; if (inputLen >= partLen) {

MD5_memcpy((POINTER)&context->buffer[index], (POINTER)input, partLen); MD5Transform (context->state, context->buffer); for (i = partLen; i + 63 < inputLen; i += 64)

index = 0; } else i = 0;

MD5_memcpy((POINTER)&context->buffer[index], (POINTER)&input[i],inputLen-i); }

void MD5Final(unsigned char digest[16],MD5_CTX *context)

{/*完成函数,context指向上面处理过的结构体,digest[16]是用来存储结果的缓冲区 这个函数对未完成的信息先进行填充,然后处理,并把最终结果存储在digest[16]中*/ unsigned char bits[8]; unsigned int index, padLen; Encode (bits, context->count, 8);

index = (unsigned int)((context->count[0] >> 3) & 0x3f); padLen = (index < 56) ? (56 - index) : (120 - index); MD5Update (context, PADDING, padLen);

14

MD5Transform (context->state, &input[i]);

《计算机信息安全》实验指导书

MD5Update (context, bits, 8); Encode (digest, context->state, 16);

MD5_memset ((POINTER)context, 0, sizeof (*context)); }

3、主函数

#include \#include #include #include #define RAND_MAX 0x7fff void main(void) {

unsigned char *inputData;

char *inp = (char *)malloc(sizeof(char)*1024); inputData=(unsigned char*)inp; unsigned char* hashstr; int i,x;

time_t t; //这两行保证每次产生的随机数不同 int len;

srand( (unsigned) time( &t ) ); len = rand()*200/RAND_MAX; inp[len]='\\0'; for(i=0;i

x = rand()*16/RAND_MAX; if(x<10)

inp[i] = 48 + x; else if(x>9 && x<16) inp[i] = 65 + x -10;

}

15

《计算机信息安全》实验指导书

printf(\明文字符串是: %s\\n\\n\

if ((hashstr = (unsigned char *) malloc(17)) == NULL) {

printf(\ exit(1); // terminate program if out of memory }

MD5String(inputData,hashstr); //调用MD5算法实现函数 printf(\明文经过MD5得到的消息摘要是:%s\\n\ }

七 实验结果

由于在程序中使用了语句int i,x;和time_t t;,保证了每次产生的明文信息均不同,故经过MD5算法运算,得到的消息摘要MD(x)也是不相同的。

八 思考题

1、简述消息认证码MAC的基本原理。 2、分析MAC与消息摘要的区别。

16

搜索更多关于: 《计算机信息安全》实验指导书 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

《计算机信息安全》实验指导书 void MD5Update(MD5_CTX *context,unsigned char *input,unsigned int inputLen) {//MD5块处理函数 unsigned int i,index,partLen; index = (unsigned int)((context->count[0] >> 3) & 0x3F); if ((context->count[0] += ((UINT4)inputLen << 3))< ((UINT4)inputLen count[1] += ((UINT4)inputLen >> 29); partLen = 64 -

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com