还剩4页未读,继续阅读
文本内容:
密码学实验算法实现——RSA姓名:班级:学号:教师:助教:程序功能函数定义D public static Stringto HexSt ring byte[]b—格式转换函数—D public KeyPair generateKeythrowsNoSuchAlgorithmException—密钥对生成函数—3protected byte[]PKCSlEcryptionRSAPublicKeypublicKey,String Data机制下加密函数——PKCS1RSA4protected byte[]PKCSIDeEcryptionRSAPrivateKeyprivateKey,byte[]raw机制下解密密函数——PKCS1RSA5protected byte[]OAEPEcryptionRSAPublicKeypublicKey,String Data机制下加密函数——OAEP RSA6protected byte[]OAEPDeEcryptionRSAPrivateKeyprivateKey,byte[]raw机制下解密密函数——OAEP RSA7public staticvoid mainString[]args主函数------Main二.程序功能函数说明(含返回、参数)《》1publicKeyPair()generateKey throwsNoSuchAlgorithmExceptionA.入口参数无(B.返回类型KeyPair类JAVA库类)一一密钥对C.函数功能利用系统随机源(且这里指定密钥长度为)()512bit与指定的算法类RSA构造一对密钥对(《2》protected byte[]PKCSlEcryption RSAPublicKey)publicKey,String DataA.入口参数RSA公钥类publickey和字符串类dataB.返回类型字节数组类一一密文形式C.函数功能能将原明文首先转化成字节数组形式,并且利用加密库Cipher与Security指定PKCS1机制下的RSA加密算法对明文加密并且以字节数组的形式返回加密后得到的密文(《3》protected byte[]OAEPEcryption RSAPublicKey)publicKey,String DataA.入口参数RSA公钥类publickey和字符串类dataB.返回类型字节数组类一一密文形式C.函数功能能将原明文首先转化成字节数组形式,并且利用加密库Cipher与Security指定OAEP机制下的RSA加密算法对明文加密并且以字节数组的形式返回加密后得到的密文《4》protected byte[]PKCSIDeEcryption RSAPrivateKeyprivateKey,byte[]rawA.入口参数RSA私钥类privatekey和字节数组类rawB.返回类型字节数组类一一明文形式C.函数功能利用加密库Cipher与Security指定PKCS1机制下的RSA解密算法对密文解密并且以字节数组的形式返回解密后得到的明文《5》protected byte[]OAEPDeEcryption RSAPrivateKeyprivateKey,byte[]rawA.入口参数RSA私钥类privatekey和字节数组类rawB.返回类型字节数组类一一明文形式C.函数功能利用加密库Cipher与Security指定OAEP机制下的RSA解密算法对密文解密并且以字节数组的形式返回解密后得到的明文《6》publicstaticString toHexStringbyte[]bA.入口参数字节数组B.返回类型字符串C.函数功能将任意的字节数组转换成ASCII码形式的十六进制字符串,便于在屏幕上显示和方便阅读《7》publicstatic voidmainString[]argsA.入口参数字符串主函数只可一次调用B.返回类型无C.函数功能提供用户手动输入,由用户指定需要加密(的明文和加密的机制3项选择),生成密钥对并对明文加密再对密文解密,最后全部显示出来供用户审阅三.编程关键与疑难解决本次编程实验重在掌握加密库的使用,这里JAVA()JDK
1.7提供了两大库--Cipher与Security,正确利用它们进行RSA加密是本实验的关键所在老实说,由于这两大库内容很多比较复杂,自己慢慢研究是很费时间的,于是我在网上查找文档和资料,需求论坛高手解答,最终确定主要用到以下库类阚场(弧I蹴%阿(丽畴®同论吗脚飒砚)悔孰制o质雕遁叫脚飒©(见㈣肃睢©南魏^赐醺M艇胭®用脚幽瞰%瞰®命©$$◎麒阊久而眦场选J额帽)啦朋$€§)仲龌明脚阚区期懈必©麻)雕确认了库类后,就可以根据eclipse提示正确找到JDK
1.7提供的RSA加密函数了,接下来操作就是搞懂每个库函数的用法即可了!四.程序运行结果截图(部分)4|__________________________________________________________削]►□控制台京、《士I晶他虚网I―后▼首▼UB^51t RSA1[Java Mffl©^]E:\Program FiIes\Java\jdkl.
7.0_09\bin\javaw.exe2012-11-27下午12:42:44请台入明文i-fsw fwsfweddqwde以下是RSAt源专算法的数据测试请先选择加解套机制r
1.PKCS1机制默认ECB工作模式
2.0AEPPadding^J系统默认3,两种机制各自加解密实现2加密前的明文为fsw fwsfweddqwdeOAEP机制下加堂言的空文为:627FCCF3DAC2E03647B65BE5F7EB2220DF7219C36BD5A264029192226F23630ABD677B9526207AE330C876CB47OAEP机制下解密,后的明文为fsw fwsfweddqwde|I,I日腼台圈兴会I蜃砧图画|匕里▼rf▼之后’®§lt RSA1[Java E:\Program Files\Java\jdkl.
7.0_09\bin\javaw.exe2012-11-27下午12:56:28话栽入房支!rdafsdsd qweasd以下是RS助展妄算法的第据测法,请先选择加解空机制
1.PKCS1机制默认ECB工作模式2,OAEPPadding机制系统默认3,两种机制各含加解套实现1帆者前的明文为:dafsdsd qweasdPKCS1机制下力匡后的空文为:机制下区密后的明文为dafsdsd qweasdin□控制台.区:X4I晶砧南网I Ef里▼门▼0已E^Slt RSA
(1)[Java E:\Program Files\Java\jdkl.
7.0_09\bin\javaw.exe(2012-11-27下午12:57:03)房先喊入房站asdfsdf vsdfvffg dsfvdf dgbg以下是RSA加快定箕法的数据测试,清先选择加颦密机制
1.PKCS1机制(默认ECB工作模式)2QAEPPadding机制(亲统默认)3,两种机制各三加解套实现asdfsdf vsdfvffg dsfvdf dgbg3asdfsdf vsdfvffg dsfvdf dgbg加密前的明文为PKCS1机制下加右后的密文为OAEP机制下加密后的空文为PKCS1机制下修苣后的明文为rnOAEP机制下解定急的明文为。
个人认证
优秀文档
获得点赞 0