Java使用RSA公钥私钥加密解密

2024-09-19  本文已影响0人  AC编程

一、代码

import java.security.*;
import java.util.Base64;
import javax.crypto.Cipher;

public class Test {

    public static void main(String[] args) {
        try {
            // 生成RSA密钥对
            KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
            keyGen.initialize(2048);
            KeyPair pair = keyGen.generateKeyPair();
            PublicKey publicKey = pair.getPublic();
            PrivateKey privateKey = pair.getPrivate();

            // 公钥和私钥的Base64编码字符串
            String publicKeyString = Base64.getEncoder().encodeToString(publicKey.getEncoded());
            String privateKeyString = Base64.getEncoder().encodeToString(privateKey.getEncoded());

            System.out.println("Public Key: " + publicKeyString);
            System.out.println("Private Key: " + privateKeyString);

            // 使用公钥加密
            Cipher cipher = Cipher.getInstance("RSA");
            cipher.init(Cipher.ENCRYPT_MODE, publicKey);
            byte[] encryptedBytes = cipher.doFinal("Secret Message".getBytes());
            String encryptedString = Base64.getEncoder().encodeToString(encryptedBytes);

            System.out.println("Encrypted Message: " + encryptedString);

            // 使用私钥解密
            cipher.init(Cipher.DECRYPT_MODE, privateKey);
            byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
            String decryptedString = new String(decryptedBytes);

            System.out.println("Decrypted Message: " + decryptedString);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读