1 上机实验报告(六) 实验课程:应用密码学实验时间:2013 年 11月 26日任课教师: 刘光军班级: 11 级信息与计算科学专业 1班姓名: 刘静学号: 0202110123 一、实验名称: SHA-1 算法的实现二、实验目的 1、了解 SHA-1 算法的基本原理 2、掌握 SHA-1 算法的实现方法三、实验内容 1、掌握 SHA-1 算法的原理及过程 2、完成字符串数据的 SHA-1 运算及算法流程四、报告正文(文档,数据,模型,程序,图形) 1、讨论学****SHA-1 算法的基本原理, 请给出算法的流程描述并画出算法的实现流程图。 2、用 C或 C++ 设计实现相应的功能模块,并给出最后的测试结果。 2 #ifndef _SHA1_H_ #define _SHA1_H_ /**//* */ #ifndef _SHA_enum_ #define _SHA_enum_ enum ...{ ess =0, shaNull, /**//* Null pointer parameter */ shaInputTooLong, /**//* input data too long */ shaStateError /**//* called Input after Result */ };#endif #define SHA1HashSize 20 typedef struct SHA1Context ...{ DWORD Intermediate_Hash[SHA1HashSize/4]; //Message Digest DWORD Length_Low; //Message length in bits DWORD Length_High; //Message length in bits int Message_Block_Index; //Index into message block array unsigned char Message_Block[64]; //512-bit message blocks puted; //Isthe puted? int Corrupted; //Isthe message digest corrupted? }SHA1Context; //Function Prototypes CString GetSHA1String(CString sSource); int SHA1Reset(SHA1Context *); int SHA1Input(SHA1Context *,const unsigned char *,unsigned int); int SHA1Result(SHA1Context *,unsigned char Message_Digest[SHA1HashSize]); 3 CString Sha1toBase32(const unsigned char *); #endif ===================================================================== ============= #include "" //Define the SHA1 circular left shift macro #d
实验六、SHA-1算法的实现 来自淘豆网www.taodocs.com转载请标明出处.