ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:81.82KB ,
资源ID:4061794      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4061794.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子商务安全技术RSA算法java实验报告文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

电子商务安全技术RSA算法java实验报告文档格式.docx

1、(2)计算模 n=p*q(n公开)(3)计算欧拉函数(n) =(p-1)*(q-1)( (n)保密),丢弃p和q(4)随机选取整数e,满足 gcd(e, (n)=1 ( e和n为公钥)(5)计算d满足d*e1 mod (n)(d和n为私钥) (6)加密:将明文分组,每组长度xn, 计算 y =xe mod n,产生密文 y(7)解密:计算 x= y d mod n,恢复出明文 x(B)附:Rabin-Miller素数检验算法(1)选择一个小于p随机数a(2)设 j=0且 z=am mod p(3)如果z=1或z=p1,那么p通过测试,可能是素数(4)如果j0且z=1,那么p不是素数(5)设j=

2、j+1。如果jb且zp-1,设z=z2 mod p,然后回到第(4)步。 如果z=p-1,那么p通过测试,可能是素数(6)如果j=b且zp-1,那么p不是素数2源程序有良好人机界面,书写实验报告,于11月22日提交。四、实验内容与步骤1.实现公钥密码算法RSA算法流程2. 实验步骤(主要代码)(1)随机产生素数randomprimep、randomprimeq并判断randomprimep、randomprimeq是否为素数:int randomprimep = 0; /素数p初始赋值为零int randomprimeq = 0; /素数q初始赋值为零 Random rand = new Ra

3、ndom(); randomprimep = 10 + rand.nextInt(200);/随机产生素数p while (ifPrime(randomprimep) /判断p是否为素数 randomprimeq = 10 + rand.nextInt(200); /随机产生素数q while (ifPrime(randomprimeq) /判断q是否为素数(2)计算模 keyn(keyn公开):keyn = randomprimep * randomprimeq;(3)计算欧拉函数eulern(eulern保密),丢弃randomprimep和randomprimeq:eulern = (r

4、andomprimep - 1) * (randomprimeq - 1);randomprimep = randomprimeq = 0; /销毁两个随机素数(4)生成公钥:publickeye = 10 + rand.nextInt(200); /随机产生公钥while (relativePrime(publickeye,eulern) /判断随机公钥与公私钥相同部分的欧拉数是否为相对素数 publickeye = 10 + rand.nextInt(200); (5)用简捷方法求私钥:boolean mark = true; /用简捷方法求私钥,从模逆运算原始定义出发int k = 0;

5、while (mark) k+; if(k * eulern + 1)%publickeye = 0) mark = false; privatekeyd = (k * eulern + 1)/publickeye; /计算私钥(6)加密: RandomAccessFile rafr = new RandomAccessFile(source,r);/定义源文件 RandomAccessFile rafw = new RandomAccessFile(destination,rw /定义目标文件 String understandtxts = ;/明文初始赋值 String passwordt

6、xts = /密文初始赋值 understandtxts = rafr.readLine();/从源文件中读取数据赋值给明文变量 passwordtxts = passwordtxts + fastPowerMultiplication(int)eachchari,publickeye,keyn) + getRandomString();/用公钥将明文加密后并赋值给密文变量 rafw.writeBytes(passwordtxts);/将密文写入目标文件中 rafr.close();/关闭源文件 rafw.close();/关闭目标文件(7)解密: passwordtxts = rafr.re

7、adLine();/从源文件中读取加密后的数据并赋值给密文变量 understandtxts = understandtxts + (char)fastPowerMultiplication(intchar,privatekeyd,keyn);/用私钥将密文解密后并赋给明文变量 rafw.writeBytes(understandtxts);/将解密后的明文写入目标文件中 rafr.close(); 3、主要的函数(1)判断一个整型数据是否为素数:public boolean ifPrime(int number)/number为素数,mark返回false;否则,返回true boolean

8、 mark = false;/mark初始赋值为false for (int i = 2;i 127 | charint 10)加密失败!原文中包含不能加密的字符。 if (mark) pos = rafr.getFilePointer(); rafr.seek(0); pos = 0; if (!mark)从文件读入明文: System.out.println(rafr.readLine();明文加密后密文: while (true) for (int i = 0; passwordtxts = passwordtxts + fastPowerMultiplication(int)eachc

9、hari,publickeye,keyn) + getRandomString(); System.out.println(passwordtxts); rafw.writeBytes(passwordtxts); if (pos = filelength) passwordtxts = rafw.writeChar( catch (Exception e) e.printStackTrace(System.out); finally rafw.close(); catch (IOException ex) ex.printStackTrace(System.out); public Stri

10、ng getRandomString() String randstr = int number = 1 + rand.nextInt(5); int charint = 65 + rand.nextInt(26); randstr = randstr + (char)charint; charint = 65 + rand.nextInt(26); return randstr; public void dataDeciphering(String source,String destination) int intchar = 0; int j = 0;密文解密后明文: eachchar

11、= passwordtxts.toCharArray(); if (Character.isDigit(eachchari) intchar = 10*intchar + Integer.valueOf(String.valueOf(eachchari); else j = i - 1; if (Character.isDigit(eachcharj) & !Character.isDigit(eachchari) intchar = 0; System.out.println(understandtxts); System.out.println( understandtxts = public static void main(String args)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2