rsa算法的java实现,RSA算法的实现——java版

RSA算法的实现——java版以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

c7ca3c0a35d74acc02ec9633bdec5de1.png

package rsa;

import java math BigInteger;

public class RSA { private long p q e d n; public RSA(){  int pIndex = (int)(Math random()* );  int qIndex;  int eIndex;  do{   qIndex = (int)(Math random()* );  }  while(qIndex==pIndex);  do{   eIndex = (int)(Math random()* );  }  while(eIndex==pIndex||eIndex==pIndex);  p = ;  q = ;  e =  ;  n = p*q;  d = calculateD(); } private long calculateD(){  long t = t = t = ;  long r = (p )*(q ) m = r r = e r = ;  do{   long q = r /r ;   r = r r *q;   if(r == )break;   t = t t *q;   while(t < ){    t +=m;   }   if(t >=m){    t %= m;   }       r = r ;   r = r ;   t = t ;   t = t ;  }while(r != );  if(r != ){   return ;  }  else{   return t ;  } }  public long getE() {  return e; } public long getN() {  return n; } public long getD() {  return d; } public BigInteger encode(BigInteger data){  return pow(data d) mod(new BigInteger(n+ )); } public BigInteger decode(BigInteger code){  return pow(code e) mod(new BigInteger(n+ )); } public BigInteger pow(BigInteger data long p){  data = data pow((int)p);  return data; } public static void main(String args[]){  RSA rsa = new RSA();    BigInteger data = new BigInteger( );  long oldtime = System currentTimeMillis();  BigInteger code = rsa encode(data);  long newtime = System currentTimeMillis();  double codetime = ((double)(newtime oldtime))/ ;  oldtime = System currentTimeMillis();  BigInteger decode = rsa decode(code);  newtime = System currentTimeMillis();  double decodetime = ((double)(newtime oldtime))/ ;  System out println( privateKey: +rsa d);  System out println( publickKey: +rsa e);  System out println( N: +rsa n);  System out println( data: +data);  System out println( code: +code+ time: +codetime);  System out println( decode: +decode+ time: +decodetime); lishixinzhi/Article/program/Java/Javascript/201311/25327

分页:123

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值