欢迎来到天天文库
浏览记录
ID:57417661
大小:32.00 KB
页数:10页
时间:2020-08-16
《实验六、SHA-1算法的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上机实验报告(六)实验课程:应用密码学实验时间:2013年11月26日任课教师:刘光军班级:11级信息与计算科学专业1班姓名:刘静学号:一、实验名称:SHA-1算法的实现二、实验目的1、了解SHA-1算法的基本原理2、掌握SHA-1算法的实现方法三、实验内容1、掌握SHA-1算法的原理及过程2、完成字符串数据的SHA-1运算及算法流程四、报告正文(文档,数据,模型,程序,图形)1、讨论学习SHA-1算法的基本原理,请给出算法的流程描述并画出算法的实现流程图。2、用C或C++设计实现相应的功能模块,并给出最后的测试结果。#i
2、fndef_SHA1_H_#define_SHA1_H_/**//*sha1.h*/#ifndef_SHA_enum_#define_SHA_enum_enum...{ shaSuccess=0, shaNull, /**//*Nullpointerparameter*/ shaInputTooLong, /**//*inputdatatoolong*/ shaStateError /**//*calledInputafterResult*/};#endif#defineS
3、HA1HashSize20typedefstructSHA1Context...{ DWORDIntermediate_Hash[SHA1HashSize/4];//MessageDigest DWORDLength_Low; //Messagelengthinbits DWORDLength_High; //Messagelengthinbits intMessage_Block_Index; //Indexintomessageblockarray uns
4、ignedcharMessage_Block[64]; //512-bitmessageblocks intComputed; //Isthedigestcomputed? intCorrupted; //Isthemessagedigestcorrupted?}SHA1Context;//FunctionPrototypesCStringGetSHA1String(CStringsSource);intSHA1Reset(SHA1Context*);in
5、tSHA1Input(SHA1Context*,constunsignedchar*,unsignedint);intSHA1Result(SHA1Context*,unsignedcharMessage_Digest[SHA1HashSize]);CStringSha1toBase32(constunsignedchar*);#endif==================================================================================#include"sh
6、a1.h"//DefinetheSHA1circularleftshiftmacro#defineSHA1CircularShift(bits,word)(((word)<<(bits))
7、((word)>>(32-(bits))))//LocalFunctionPrototyptes*/voidSHA1PadMessage(SHA1Context*);voidSHA1ProcessMessageBlock(SHA1Context*);intSHA1Reset(SHA1Context*c)...{ if(!c)
8、 returnshaNull; c->Length_Low =0; c->Length_High =0; c->Message_Block_Index =0; c->Intermediate_Hash[0] =0x; c->Intermediate_Hash[1] =0xEFCDAB89; c->Intermediate_Hash[2] =0x98BADCFE; c->Intermediate_Hash[3] =0x; c->Inte
9、rmediate_Hash[4] =0xC3D2E1F0; c->Computed =0; c->Corrupted=0; returnshaSuccess;}intSHA1Result(SHA1Context*c,unsignedcharMessage_Digest[SHA1HashS
此文档下载收益归作者所有