我已经尝试了几天而根本无法使其发挥作用。如果我有私钥和公钥对。我只是尝试使用公钥加密消息,然后使用私钥解密。我的代码看起来像这样:
String message = "Secure Message";
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
Key privateKey = keyPair.getPrivate();
Key publicKey = keyPair.getPublic();
Cipher cipher = Cipher.getInstance(publicKey.getAlgorithm());
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptData = cipher.doFinal(message.getBytes());
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] decryptData = cipher.doFinal(encryptData);
System.out.println(encryptData.toString());
System.out.println(decryptData.toString());
但它似乎没有起作用。我得到的输出是这样的:
[B@4e33967b
[B@1cdc8d59
答案 0 :(得分:1)
您的代码存在两个非常小的问题,
// System.out.println(encryptData.toString());
// System.out.println(decryptData.toString());
System.out.println(Arrays.toString(encryptData));
System.out.println(new String(decryptData));
Object.toString()
,这基本上是hashCode(),实际上是参考地址。