DES调试总结完整版.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一步,我们需要在自己的VC 环境下把相应的库文件配置好,以保证链接的时候不会出现找不到相应函数的错误,这里首先必须把out32dll目下的libeay32.dll文件拷贝至System32系统目录下,再在创建好的工程里项目:设置:链接选项中保证Object/library Moduls中添加进libeay32.lib库文件,此步完成好以后,免去了链接过程中可能发生的很多错误! ?? 第二步,在建立的工程文件中,新建一个源文件(.cpp/.c),把目录crypto/des下的des.c源文件直接复制过去,比如我自己的工程文件建立目录为:D:\opensslDemo\destest,此时你会发现此目录下会新增你建立的新文件(des.c),文件头前部分可以如我以下所示: ?#include stdio.h #include stdlib.h #include string.h #include math.h #include io.h #include time.h #include sys/types.h #include sys/stat.h #include opensslconf.h #include des.h #include? rand.h #include? ui_compat.h。。。。。。 ?由于我的目录没有进行设置,所以,需要的头文件统统用 表示而不是用来表示,需要把目录inc12/openssl下所有的文件都拷贝至你建立的工程目录下,同时我引用中没有的头文件可从des目录下寻找到,同样拷贝至工程目录下,比如我的D:\opensslDemo\destest下面,好了,开始编译调试,你会发现系统提示你所有的头文件均找不到,一个一个来吧,点击错误发生的地方,把原来的文件包含的语句比如: ? #include openssl/des.h统统改成 #include des.h,这里需要有点耐心,大约有二三十个地方需要修改!之后,编译应该可以通过,但是链接会出现两个错误,提示方法:DES_3cbc_encrypt 无法解析,我也是查找文件des.h发现没有提供相应方法,只好把其改为方法:DES_ncbc_encrypt,该方法需要六个参数,而前者需要八个!所有,在程序中就必须有三处需要改动,如下: ?? 1. /*void DES_3cbc_encrypt(DES_cblock *input,DES_cblock *output,long length, ?DES_key_schedule sk1,DES_key_schedule sk2, ?DES_cblock *ivec1,DES_cblock *ivec2,int enc);*/? //原始代码,之后是修改代码 void DES_ncbc_encrypt(const unsigned char *input,unsigned char *output, ??????? long length,DES_key_schedule *schedule,DES_cblock *ivec, ??????? int enc); ? 2.?//DES_3cbc_encrypt( ???? DES_ncbc_encrypt( ?????//(DES_cblock *)buf,(DES_cblock *)obuf, ?????//(long)l,ks,ks2,iv, ????//?iv2,do_encrypt); ???? ( unsigned char *)buf,( unsigned char *)obuf, ?????(long)l,ks,iv, ?????do_encrypt);? //注意注释掉的都是原来代码 3.?//DES_3cbc_encrypt( ????DES_ncbc_encrypt( ?????//(DES_cblock *)buf,(DES_cblock *)obuf, ?????//(long)l,ks,ks2,iv, ?????//iv2,do_encrypt); ?????( unsigned char *)buf,( unsigned char *)obuf, ?????(long)l,ks,iv, ?????do_encrypt); ?如果有参数不匹配,系统会报错,根据错误给出正确的参数类型! ?? 再进行编译,链接,你会发现OK,生成了可执行代码! ?第三步,转到命令模式下,进入你建立的工程目录,至D:\opensslDemo\destest\debug,你发现有可执行文件,我的为:destest.exe,好了,下面咱们试试结果如何? ? 输入命令:destest -E plain.txt? mydes.des? ,文件plain.txt内容

文档评论(0)

姚启明 + 关注
实名认证
内容提供者

80后

1亿VIP精品文档

相关文档