java实现的基于RSA的公钥加密算法
来源:互联网 发布:linux查看hba卡wwn 编辑:程序博客网 时间:2024/05/16 19:23
//非对称秘钥生成
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
public class Skey_RSA
{
public static void main(String args[])throws Exception
{
KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair kp=kpg.genKeyPair();
PublicKey pbkey=kp.getPublic();
PrivateKey prkey=kp.getPrivate();
FileOutputStream f1=new FileOutputStream("Skey_RSA_pub.dat");
ObjectOutputStream b1=new ObjectOutputStream(f1);
b1.writeObject(pbkey);
FileOutputStream f2=new FileOutputStream("Skey_RSA_priv.dat");
ObjectOutputStream b2=new ObjectOutputStream(f2);
b2.writeObject(prkey);
}
}
//非对称加密
import java.security.*;
import java.security.spec.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import javax.crypto.interfaces.*;
import java.security.interfaces.*;
import java.math.*;
import java.io.*;
public class Enc_RSA
{
public static void main (String args[])throws Exception{
String s="Hello World!";
FileInputStream f=new FileInputStream("Skey_RSA_pub.dat");
ObjectInputStream b=new ObjectInputStream(f);
RSAPublicKey pbk=(RSAPublicKey)b.readObject();
BigInteger e=pbk.getPublicExponent();
BigInteger n=pbk.getModulus();
System.out.println("e="+e);
System.out.println("n="+n);
byte ptext[]=s.getBytes("UTF8");
BigInteger m=new BigInteger(ptext);
BigInteger c=m.modPow(e,n);
System.out.println("c="+c);
String cs=c.toString();
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Enc_RSA.dat")));
out.write(cs,0,cs.length());
out.close();
}
}
//非对称解密
import java.security.*;
import java.security.spec.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import javax.crypto.interfaces.*;
import java.security.interfaces.*;
import java.math.*;
import java.io.*;
public class Dec_RSA{
public static void main (String args[])throws Exception{
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("Enc_RSA.dat")));
String ctext=in.readLine();
BigInteger c=new BigInteger(ctext);
FileInputStream f=new FileInputStream("Skey_RSA_priv.dat");
ObjectInputStream b=new ObjectInputStream(f);
RSAPrivateKey prk=(RSAPrivateKey)b.readObject();
BigInteger d=prk.getPrivateExponent();
BigInteger n=prk.getModulus();
System.out.println("d="+d);
System.out.println("n="+n);
BigInteger m=c.modPow(d,n);
System.out.println("m="+m);
byte[] mt=m.toByteArray();
System.out.println("PlainText is");
for(int i=0;i<mt.length;i++)
{
System.out.print((char)mt[i]);
}
}
}
- java实现的基于RSA的公钥加密算法
- RSA加密算法的java实现
- RSA加密算法的java实现
- 基于java类库的RSA加密算法实现
- RSA加密算法的实现
- RSA加密算法的简单实现
- JAVA与GO语言实现的RSA加密算法的互通
- RSA加密算法-Java实现
- Java实现文件的RSA和DES加密算法
- Java实现文件的RSA和DES加密算法
- Java实现文件的RSA和DES加密算法
- Java实现文件的RSA和DES加密算法
- RSA与AES混合加密算法的实现
- [python]rsa加密算法的一个简单实现
- RSA加密算法的C语言实现
- java rsa加密算法java实现
- JAVA的RSA加密算法工具类
- RSA加密算法操作的java演示
- Oracle用触发器实现插入数据主键自增
- Head First C# 中文版 图文皆译 第二章 page73
- 在路径中截取文件名
- eclipse中关联java源码以及doc的设置
- 控制 GridView 控件中内容的换行
- java实现的基于RSA的公钥加密算法
- 深入理解计算机系统阅读笔记-汇编跳转指令
- 精彩一瞬间
- 全面透彻的spring事务属性详解
- 引擎基础教程 3D游戏引擎FAQ
- 程序员必知必会之blog篇
- Hibernate ehcache配置二级缓存
- shell 中的特殊符号解释
- 北大2608题