RSA加密

  1. import java.security.KeyPair;
  2. import java.security.KeyPairGenerator;
  3. import java.security.interfaces.RSAPrivateKey;
  4. import java.security.interfaces.RSAPublicKey;
  5. import javax.crypto.Cipher;
  6. /**
  7. * RSAEncrypt
  8. *

     

  9. * @author maqujun
  10. * @see
  11. */
  12. public class RSAEncrypt {
  13. /**
  14. * Main method for RSAEncrypt.
  15. * @param args
  16. */
  17. public static void main(String[] args) {
  18. try {
  19. RSAEncrypt encrypt = new RSAEncrypt();
  20. String encryptText = "encryptText";
  21. KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
  22. keyPairGen.initialize(1024);
  23. KeyPair keyPair = keyPairGen.generateKeyPair();
  24. // Generate keys
  25. RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
  26. RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
  27. byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes());
  28. byte[] de = encrypt.decrypt(privateKey,e);
  29. System.out.println(encrypt.bytesToString(e));
  30. System.out.println(encrypt.bytesToString(de));
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. }
  34. }
  35. /**
  36. * Change byte array to String.
  37. * @return byte[]
  38. */
  39. protected String bytesToString(byte[] encrytpByte) {
  40. String result = "";
  41. for (Byte bytes : encrytpByte) {
  42. result += (char) bytes.intValue();
  43. }
  44. return result;
  45. }
  46. /**
  47. * Encrypt String.
  48. * @return byte[]
  49. */
  50. protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj) {
  51. if (publicKey != null) {
  52. try {
  53. Cipher cipher = Cipher.getInstance("RSA");
  54. cipher.init(Cipher.ENCRYPT_MODE, publicKey);
  55. return cipher.doFinal(obj);
  56. } catch (Exception e) {
  57. e.printStackTrace();
  58. }
  59. }
  60. return null;
  61. }
  62. /**
  63. * Basic decrypt method
  64. * @return byte[]
  65. */
  66. protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) {
  67. if (privateKey != null) {
  68. try {
  69. Cipher cipher = Cipher.getInstance("RSA");
  70. cipher.init(Cipher.DECRYPT_MODE, privateKey);
  71. return cipher.doFinal(obj);
  72. } catch (Exception e) {
  73. e.printStackTrace();
  74. }
  75. }
  76. return null;
  77. }
  78. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值