- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西华大学计算机系上机实践报告
课程名称:密码学
年级:07级
上机实践成绩:
指导教师:纪四维
姓名: 范存勇
上机实践名称:HASA算法MD5
学号: 312007080605104
上机实践日期:2009-11-10
上机实践编号:A01
组号:
上机实践时间14:00-17:20
目的
通过实际编程了解MD5算法, 加深对MD5的性质、原理的理解。
内容与设计思想
算法分析。
使用实例分析
在密码算法库中,找出关于MD5算法的部分对一个文件进行处理,计算它的HASH值,提交程序代码和运算结果。
微软的系统软件都有MD5验证,尝试查找软件的MD5值。同时,在Windows操作系统中,通过开始-? 运行?sigverif命令,利用数字签名查找验证非Windows的系统软件。
三、使用环境
运行Windows 或Linux 操作系统的PC机,具有GCC(Linux)、VC(Windows) 等C语言编译环境。
四、核心代码及调试过程
#include mycrypt.h
int hash_file(int hash, const char *fname, unsigned char *dst, unsigned long *outlen)
{
#ifdef NO_FILE
return CRYPT_NOP;
#else
FILE *in;
int err;
_ARGCHK(fname != NULL);
_ARGCHK(dst != NULL);
_ARGCHK(outlen != NULL);
if ((err = hash_is_valid(hash)) != CRYPT_OK) {
return err;
}
in = fopen(fname, rb);
if (in == NULL) {
return CRYPT_FILE_NOTFOUND;
}
err = hash_filehandle(hash, in, dst, outlen);
if (fclose(in) != 0) {
return CRYPT_ERROR;
}
return err;
#endif
}
/* LibTomCrypt, modular cryptographic library -- Tom St Denis
*
* LibTomCrypt is a library that provides various cryptographic
* algorithms in a highly modular and flexible manner.
*
* The library is free for all purposes without any express
* guarantee it works.
*
* Tom St Denis, tomstdenis@iahu.ca,
*/
#include mycrypt.h
int hash_filehandle(int hash, FILE *in, unsigned char *dst, unsigned long *outlen)
{
#ifdef NO_FILE
return CRYPT_NOP;
#else
hash_state md;
unsigned char buf[512];
size_t x;
int err;
_ARGCHK(dst != NULL);
_ARGCHK(outlen != NULL);
_ARGCHK(in != NULL);
if ((err = hash_is_valid(hash)) != CRYPT_OK) {
return err;
}
if (*outlen hash_descriptor[hash].hashsize) {
return CRYPT_BUFFER_OVERFLOW;
}
*outlen = hash_descriptor[hash].hashsize;
hash_descriptor[hash].init(md);
do {
x = fread(buf, 1, sizeof(buf), in);
hash_descriptor[hash].process(md, buf, x);
} while (x == sizeof(
您可能关注的文档
最近下载
- 2025年护理人员N1进阶N2考试试题及答案 .pdf VIP
- DB21T1342-2021 建筑工程文件编制归档规程.pdf
- Unit-1-Discovering-Useful-Structures-超好用的公开课获奖课件-(.pptx VIP
- 专业技术职务任职资格评审表.doc VIP
- 医疗操作规程.docx VIP
- 湖北省专业技术职务任职资格评审表.docx
- 钒酸铋光催化剂的制备及改性.pdf VIP
- 城市轨道交通列车牵引与制动系统(配实训工单) 实训手册(带答案).docx VIP
- 吊装施工专业技术方案(含计算).doc VIP
- 城市轨道交通车辆维护与检修中职全套完整教学课件.pptx
文档评论(0)