java编写非对称加密,解密,公钥加密,私钥解密,RSA,rsa

时间:2022-11-27 20:18:26

非对称加密已经被评为加密标准,主要包含(公钥加密私钥解密,或者私钥加密公钥解密)本文主要讲解的是如何用java生成 公钥和私钥并且 进行字符串加密 和字符串解密
    java编写非对称加密,解密,公钥加密,私钥解密,RSA,rsa

java编写非对称加密,解密,公钥加密,私钥解密,RSA,rsa

java编写非对称加密,解密,公钥加密,私钥解密,RSA,rsa

//如需要代码copy如下

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.HashMap;
import java.util.Map;

import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;

import sun.applet.resources.MsgAppletViewer;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class KeyRSA1 {
    //密钥对生成器
    private KeyPairGenerator keyPairGenerator;
    //密钥对 里面包含(公钥he 私钥)
    private KeyPair keyPair;
    //公钥对象
    private PublicKey publicKey;
    //私钥对象
    private PrivateKey privateKey;
    //加密解密通用类型  
    private String keyType = "RSA";
    /*** 构造函数
     * @param keySize 密钥长度取值范围(512-16384)建议1024或者2048 别整太长降低性能
     * @throws Exception*/
    public KeyRSA1(int keySize) throws Exception {
        // 1创建 keypairGengerator密钥生成器对象
        keyPairGenerator = KeyPairGenerator.getInstance(keyType);
        // 2指定密钥生成器的长度
        keyPairGenerator.initialize(keySize);
        // 3创建 keypair 根据密钥生成器获取密钥对 里面包含(公钥和私钥)
        keyPair = keyPairGenerator.genKeyPair();
        // 4 根据密钥对 创建 公钥
        publicKey = keyPair.getPublic();
        // 5 根据密钥对 创建 私钥
        privateKey = keyPair.getPrivate();
    }
    // 使用公