欢迎来到天天文库
浏览记录
ID:61425666
大小:121.41 KB
页数:6页
时间:2021-01-29
《信息安全实验2分组密码加密.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、分组密码加密一、实习目的1.理解对称加密算法的原理,熟悉常用的对称加密算法:DES、TripleDES、Blowfish;2.以DES加密算法为例,掌握分组加密算法加、解密过程的实现。二、实习内容1.[基本要求]以DES/DESede为例,利用java中的相关类实现对指定字符串的加、解密。2.[实现提示](1)可以利用java中的KeyGenerator类创建对称秘钥,利用工厂类KeyGenerator的静态方法getInstance()获得KeyGenerator()类对象;(2)方法getInstance()的参数为字符串类型,指定加密算法的名称如:Blowfis
2、h、DES、DESede、HmacMD5或HmacSHA1等;(3)利用工厂类Cipher的对象可以创建密码器。同样的,getInstance()的参数为字符串类型,指定加密算法的名称。三、算法分析和流程图DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mo
3、de。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。四、测试数据和预期结果1按照规定,密钥输入移位的数字,明文输入字母,如下图所示,加密成功2加密yanglingmalasong+1233测试*能否加密加密4测试汉字能否加密五、源程序importjava.io.FileOutputStream;importjava.io.ObjectOutputStream;importjavax.crypto.KeyGenerator
4、;importjavax.crypto.SecretKey;publicclassSkey_DES{/***@paramargs*/publicstaticvoidmain(Stringargs[])throwsException{//TODOAuto-generatedmethodstubKeyGeneratorkg=KeyGenerator.getInstance("DESede");kg.init(168);SecretKeyk=kg.generateKey();FileOutputStreamf=newFileOutputStream("H:\key1.da
5、t");ObjectOutputStreamb=newObjectOutputStream(f);b.writeObject(k);}}importjava.io.*;importjava.security.*;importjavax.crypto.*;publicclassSEnc{/***@paramargs*/publicstaticvoidmain(Stringargs[])throwsException{//TODOAuto-generatedmethodstubStrings="Hello123Hello123Hello123Hello123";FileI
6、nputStreamf=newFileInputStream("H:\key1.dat");ObjectInputStreamb=newObjectInputStream(f);Keyk=(Key)b.readObject();Ciphercp=Cipher.getInstance("DESede");cp.init(Cipher.ENCRYPT_MODE,k);byteptext[]=s.getBytes("UTF8");for(inti=0;i7、t.println("");bytectext[]=cp.doFinal(ptext);for(inti=0;i
7、t.println("");bytectext[]=cp.doFinal(ptext);for(inti=0;i
此文档下载收益归作者所有