当前位置:网站首页 > 技术博客 > 正文

rsa加密算法java实现

以下是一个简单的

Java RSA 工具类

的示例代码:

 java import java .security.Key; import java .security.KeyFactory; import java .security.KeyPair; import java .security.KeyPairGenerator; import java .security.PrivateKey; import java .security.PublicKey; import java .security.spec.PKCS8EncodedKeySpec; import java .security.spec.X509EncodedKeySpec; import java x.crypto.Cipher; import org.apache.commons.codec.binary.Base64;  public class RSA Utils {  private static final String RSA _ALGORITHM = " RSA ";  public static KeyPair generateKeyPair() throws Exception { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance( RSA _ALGORITHM); keyPairGenerator.initialize(2048); return keyPairGenerator.genKeyPair(); }  public static String encrypt(String plainText, PublicKey publicKey) throws Exception { Cipher cipher = Cipher.getInstance( RSA _ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] encryptedBytes = cipher.doFinal(plainText.getBytes()); return Base64.encodeBase64String(encryptedBytes); }  public static String decrypt(String encryptedText, PrivateKey privateKey) throws Exception { Cipher cipher = Cipher.getInstance( RSA _ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] encryptedBytes = Base64.decodeBase64(encryptedText); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); return new String(decryptedBytes); }  public static PublicKey getPublicKey(byte[] publicKeyBytes) throws Exception { X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicKeyBytes); KeyFactory keyFactory = KeyFactory.getInstance( RSA _ALGORITHM); return keyFactory.generatePublic(keySpec); }  public static PrivateKey getPrivateKey(byte[] privateKeyBytes) throws Exception { PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privateKeyBytes); KeyFactory keyFactory = KeyFactory.getInstance( RSA _ALGORITHM); return keyFactory.generatePrivate(keySpec); } } 

使用示例:

 java public class Main { public static void main(String[] args) { try { // 生成密钥对 KeyPair keyPair = RSA Utils.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate();  // 加密 String plainText = "Hello, RSA !"; String encryptedText = RSA Utils.encrypt(plainText, publicKey); System.out.println("Encrypted Text: " + encryptedText);  // 解密 String decryptedText = RSA Utils.decrypt(encryptedText, privateKey); System.out.println("Decrypted Text: " + decryptedText); } catch (Exception e) { e.printStackTrace(); } } } 

请注意,这只是一个简单的示例,用于演示

RSA 加密

解密

过程。在实际应用中,您需要更加严格的错误处理和安全性措施。

  • 上一篇: easyn软件下载
  • 下一篇: o1bz线路2
  • 版权声明


    相关文章:

  • easyn软件下载2024-12-28 14:30:00
  • http转发dns2024-12-28 14:30:00
  • 协程是什么意思2024-12-28 14:30:00
  • 开窗函数 lag2024-12-28 14:30:00
  • 类的静态成员变量怎么赋值2024-12-28 14:30:00
  • o1bz线路22024-12-28 14:30:00
  • 求next数组值2024-12-28 14:30:00
  • vc2010运行库官方下载2024-12-28 14:30:00
  • oracle 视图2024-12-28 14:30:00
  • oracle左连接和右连接的区别2024-12-28 14:30:00