大学密码学实验报告(含代码) 试验4 HASA算法MD.docVIP

大学密码学实验报告(含代码) 试验4 HASA算法MD.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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(

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档