文件名称:RSA公钥密码系统的Java实现
文件大小:280KB
文件格式:DOC
更新时间:2013-07-03 05:07:56
RSA公钥密码系统的Java实现
RSA公钥密码系统的Java实现
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package rsa;
import java.math.BigInteger;
import java.util.Scanner;
import java.util.Random;
/**
*
* @author Administrator
*/
public class RSABigInteger {
private BigInteger bign,ukey,rkey,eulerPhi;
private int bitBLength=32;
/**
* @return the bign
*/
public BigInteger getBign() {
return bign;
}
public RSABigInteger()
{
this.generatingUAndRKey();
}
public static void main(String[] args)
{
RSABigInteger rsa = new RSABigInteger();
rsa.test02();
}
public void test()
{
long ptt=25;
System.out.println("Before encripting plaintext= "+ptt);
BigInteger pt = BigInteger.valueOf(ptt);
BigInteger ct=this.encripting(pt);
System.out.println("The ciphertext="+ct.longValue());
pt = this.decripting(ct);
System.out.println("After decripting the plaintext = "+
pt.longValue());
}
public void test02()
{
BigInteger[] bgPt,bgCt;
byte[] btPt,btCt;
//long[] lgPt,lgCt;
long lgC;
String strPt,strCt;
int len,i;
pstr("Input a plain text to be encripted:");
Scanner scanf = new Scanner(System.in);
strPt=scanf.nextLine();
pstr("The plain text to be encripted:"+strPt);
len=strPt.length();
bgPt=new BigInteger[len];
bgCt=new BigInteger[len];
//lgPt=new long[len];
//lgCt=new long[len];
btPt=strPt.getBytes();
btCt=new byte[len];
//Encripting
pstr("Encripting....");
for(i=0;i