场景:Java实现RSA,将公钥和秘钥分别输出文件,公钥用于加密,私钥用于解密。
重点要关注解密时,不能直接传String,要用byte[],所以需要加二者转换函数。
参考代码如下:
package sk.ml;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
public class RSAAsymmetricEncryption {
/**
* 公钥加密,私钥解密(非对称加密)
*
*/
public static void main(String[] args) throws Exception {
//生成公钥文件和秘钥文件并保存
generateKey();
//导入公钥加密
String express="13366668888";
byte[] cipherText=publicEnrypy(express);
String strCip