Java实现的实现的RSA加密解密算法示例加密解密算法示例
主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了java RAS加密解密算法的相关实现技巧,需要的朋
友可以参考下
本文实例讲述了Java实现的RSA加密解密算法。分享给大家供大家参考,具体如下:
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import javax.crypto.Cipher;
public class RSAUtils{
public static String makekeyfile(String pubkeyfile, String prikeyfile) {
String result = "生成公私钥文件失败";
try{
// KeyPairGenerator用于生成公私钥对,基于RSA算法生成对象
KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
// 初始化密钥对生成器,密钥大小为1024位
gen.initialize(1024);
// //生成强随机数
// SecureRandom random = new SecureRandom();
// gen.initialize(1024,random);
// 生成一个密钥对,保存在pair中
KeyPair pair = gen.generateKeyPair();
// 得到私钥
RSAPrivateKey priKey = (RSAPrivateKey) pair.getPrivate();
// 得到公钥
RSAPublicKey pubKey = (RSAPublicKey) pair.getPublic();
// 生成私钥文件
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(prikeyfile));
os.writeObject(priKey);
os.flush();
os.close();
//生成公钥文件
os = new ObjectOutputStream(new FileOutputStream(pubkeyfile));
os.writeObject(pubKey);
os.flush();
os.close();
result = "生成公钥文件【"+pubkeyfile+"】生成私钥文件【"+prikeyfile+"】";
}catch(Exception e){
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
try{
String pubfile = "F:/images/pub.key";
String prifile = "F:/images/pri.key";
String result = null;
//result = makekeyfile(pubfile, prifile);
result = markPuPra(pubfile, prifile);
System.out.println(result);
}catch(Exception e){
e.printStackTrace();
}
}
public static String markPuPra(String pubfile,String prifile){
String results = "加解密出错";
try{
ObjectInputStream os = new ObjectInputStream(new FileInputStream(pubfile));
RSAPublicKey pubkey = (RSAPublicKey) os.readObject();
os.close();
os = new ObjectInputStream(new FileInputStream(prifile));
RSAPrivateKey prikey = (RSAPrivateKey) os.readObject();
评论0