对称加密算法

对称加密算法

ID:26140251

大小:301.50 KB

页数:9页

时间:2018-11-25

对称加密算法_第1页
对称加密算法_第2页
对称加密算法_第3页
对称加密算法_第4页
对称加密算法_第5页
资源描述:

《对称加密算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一:对称加密算法实验对称算法:实验目的:(1)了解对称算法的基本工作流程。(2)掌握对称算法的使用方法。硬件环境: IntelCorei3CPU2.67GHz4GRAM软件环境:VS2010PerlopenssLMyeclipse10.0实验步骤:(1)认识OpenSSL工具包。(2)用简短的程序代码演示:分组加密算法(DES、AES)和流密码算法(RC4)的使用,其中包括分组算法的四种应用模式ECB、CBCCFB、OFB。1.获得OpenSSL到OpenSSL的网站即可下载当前版本的OpenSSL源代码压缩包。最新版本为openssl-1.0.1e.tar.gz2.编译工具编译Op

2、enSSL需要Perl和C编译器。Perl在Windows下使用ActivePerl。在Windows下可以使用VisualC++编译器。3.编译和安装步骤在Windows中在所有程序->visualstudio2010->visualstudiotools->visualstudio命令提示:>cdd:openssl>perlConfigureVC-WIN32>>msdo_ms>nmake-fmstdll.mak>cdout32dll>..mstest编译结果得到头文件、链接库、运行库和openssl.exe工具。头文件位于./inc32或者./inculde目录,有一个o

3、penssl子目录,内有几十个.h文件。链接库即./out32dll目录中的libeay32.lib和ssleay32.lib,分别是密码算法相关的和ssl协议相关的。运行库是./out32dll目录中的libeay32.dll和ssleay32.dll,和链接库相对应。在./out32dll中还有一个工具openssl.exe,可以直接用来测试性能、产生RSA密钥、加解密文件,甚至可以用来维护一个测试用的CA。下图是利用openssLspeed测试各种加密算法的速度下图实现的是DEC中ECB和BFB的算法实验:下图是AES的算法是:RC4的结果为:(3)编写一个简单但是安全的文件加密程

4、序。DES:packagetest1;importjava.security.Key;importjava.security.SecureRandom;importjavax.crypto.Cipher;importjavax.crypto.KeyGenerator;publicclassDesEncrypt{Keykey;/根据参数生成KEY/publicvoidgetKey(StringstrKey){try{KeyGenerator_generator=KeyGenerator.getInstance("DES");_generator.init(newSecureRandom(s

5、trKey.getBytes()));this.key=_generator.generateKey();_generator=null;}catch(Exceptione){e.printStackTrace();}}/加密String明文输入,String密文输出/publicStringgetEncString(StringstrMing){byte[]byteMi=null;byte[]byteMing=null;StringstrMi="";try{returnbyte2hex(getEncCode(strMing.getBytes()));}catch(Exceptione)

6、{e.printStackTrace();}finally{byteMing=null;byteMi=null;}returnstrMi;}/解密以String密文输入,String明文输出/publicStringgetDesString(StringstrMi){byte[]byteMing=null;byte[]byteMi=null;StringstrMing="";try{returnnewString(getDesCode(hex2byte(strMi.getBytes())));}catch(Exceptione){e.printStackTrace();}finally{

7、byteMing=null;byteMi=null;}returnstrMing;}/加密以byte[]明文输入,byte[]密文输出/privatebyte[]getEncCode(byte[]byteS){byte[]byteFina=null;Ciphercipher;try{cipher=Cipher.getInstance("DES");cipher.init(Cipher.ENCRYPT_MODE,key);byteFi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。