2
我會發布我的代碼。對困惑感到抱歉。爲什麼RSA使用相同的密鑰和消息產生不同的結果?
StringBuilder texto1 = new StringBuilder("LALALLA");
byte[] x = texto1.toString().getBytes();
try {
Cipher cifrado = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cifrado.init(Cipher.ENCRYPT_MODE, key1.getPublic());
x = cifrado.doFinal(x);
String texto;
texto = new String(x, "UTF-8");
JOptionPane.showInputDialog(publicKey.toString());
String teste = "";
for (int i = 0; i < x.length; i++) {
teste += x[i];
}
jTextPane1.setText(teste);
//cifrado.init(Cipher.DECRYPT_MODE, privatekey);
byte[] y;
// x= texto.getBytes();
//y = cifrado.doFinal(texto.getBytes());
//texto = new String(y,"UTF-8");
jTextPane2.setText(x.toString());
} ...
這是按鈕上的操作中的代碼。我運行此代碼,使用相同的按鍵,每次,對加密texto1返回不同的結果像[[email protected]
或[[email protected]
首先:**是**,加密是**應該**做到這一點。第二:你打印的字符串是'byte []'的'toString()',它的內容完全不相關。 –
PKCS#1v1.5填充是危險的;如果可能,請考慮使用OAEP。 – ntoskrnl