при использовании jsencrypt.min. js шифрование и java исключение бросков дешифрования
strp1:
backend private_key:
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJsgJYE6yJ25t8Nk6a50juAcwHDdhBLc1Lm3r9vFYZSqSrJKFs0ISodEnYkLwkoS8GrnwvXnmXngfbBHfzeWt0FwljpZiuAE/QM2FqF1q171dEJ/ZOE+epel6lCXsbf9K3k85nPj1u/i6IHgihJAE/eE55um5UwVG4XberTwZkghAgMBAAECgYBDRurdJChzt2MKXA64+ZYpfm67xGaOY7XiodakQvNyLXTd5CIFZC4mgkysbiwiQhqA0ukMCxjV8dWxCSEUc8of65d1gSvWr2lwo/WR+hTtPkMhxW1ONV5IzifOqz42MNezxNZPAT9FXyShBlxty0uKHpoAKN66Xpma0qaZ4k5aUQJBAMtV+aJykveLdeBlVSgpZEX+QKQj2xNIxc6rxkmiB+86l4PbD6ZrolWWadmODLSSsjz0FQiDSoyTnYnVze418R0CQQDDTaCDx7fxXkbvHxB7mKoXR2NHIvsQ+K3WMamBBdSTlaxoIsP+v1b4KxDgQEz9Qfnm5usiuHpf3Y7qS+Ip6mfVAkEAg7pCDAx/y6Dsj5/2KBuQm4uYov2bmoWlqDs+LUusKj5iFAjhvaWzOBFGp6tP7devYq+ZxLcRn7qt77K0Q2NsvQJBAIdngXr787a/U1Sj5+yY+owrLVR7ly+8CeHwCoHuheRQp/iG6fXruKNUUF35lqcbn+QLg0hOOGHQnS4psEK5RoUCQQCk1/A/kwaKW2Aj5zEapK+lHTV/JtWruhZJmN4qdRIopIRNKwCUlwpPrSSYBxwggNPSWqi98mX/pi3307iflj+a
backend public_key is :
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbICWBOsidubfDZOmudI7gHMBw3YQS3NS5t6/bxWGUqkqyShbNCEqHRJ2JC8JKEvBq58L155l54H2wR383lrdBcJY6WYrgBP0DNhahdate9XRCf2ThPnqXpepQl7G3/St5POZz49bv4uiB4IoSQBP3hOebpuVMFRuF23q08GZIIQIDAQAB
step2: я использую vue. js import jsencrypt.min. js зашифрованный код, код:
VxxRfQ5QciBbmDHUFHk/tJEdZP7ypweW4fLiw7/nXrdFIrykj1+0Dcr6Uk6tskLoM2z7eyyAfXYygjiZiGzkazs2uJ3udZjlWaG2VBR9+yW7V5qJg0GEP1ir5BBIxBZrTTVIyruFeMuBnFWqjApin+eJWRGZ1EF+ZNgOh0/uM8xTIE7gg6ypmjdu0W1sHEgdcPcZrB7m7zoRi7Qgpj3b1tVafeE4FOS7ySDqr2HWByL1hSmqQGN3e8W/Fn0dnTSkByXnAqSkRN/peTphPkrzXGUBbNWHQT+WU701Y52hoqIUO+IHOHk+UZlDpAQSEHs6rHPXXnPOui66eghI3j9C0A==
step3: use java расшифровывает этот код, затем выдает Excetpion
Exception in thread "main" javax.crypto.BadPaddingException: Decryption error
at sun.security.rsa.RSAPadding.unpadV15(RSAPadding.java:383)
at sun.security.rsa.RSAPadding.unpad(RSAPadding.java:294)
at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:363)
at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:389)
at javax.crypto.Cipher.doFinal(Cipher.java:2222)
at com.javaweb.util.core.RsaUtil.decrypt(RsaUtil.java:197)
at com.javaweb.util.core.RsaUtil.main(RsaUtil.java:218)
мой java расшифрованный код
public static String decrypt(String data, PrivateKey privateKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");//RSA/ECB/NoPadding//RSA/ECB/PKCS1Padding
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] dataBytes = Base64.decodeBase64(data);
int inputLen = dataBytes.length;
ByteArrayOutputStream out = new ByteArrayOutputStream();
int offset = 0;
byte[] cache;
int i = 0;
while (inputLen - offset > 0) {
if (inputLen - offset > MAX_DECRYPT_BLOCK) {
cache = cipher.doFinal(dataBytes, offset, MAX_DECRYPT_BLOCK);
} else {
cache = cipher.doFinal(dataBytes, offset, inputLen - offset);
}
out.write(cache, 0, cache.length);
i++;
offset = i * MAX_DECRYPT_BLOCK;
}
byte[] decryptedData = out.toByteArray();
out.close();
return new String(decryptedData,"UTF-8");
}
MAX_DECRYPT_BLOCK = 128
Я нашел step2 code
в байтовом массиве длина 256, но если расшифровать этот код
f/ghwhailFH1GUbvvm2FpvaZttChJgsSorUx8Wy83PaC2ZorfMdu3Lz5Px56GLbX5VbKtdRTdRuC+yCGK8RZICUxJpTdblN8yoKUI2LdxPFnc7IHlRWN60xkww1bQ3c9QyT5IKYe7TKOx7SGmUXIi0ec/QMEklEYUUG8YrmJ7Xo=
, я могу получить правильный результат, тогда я изменяю MAX_DECRYPT_BLOCK = 256, но все равно бесполезно, тогда я вижу, что кто-то говорит: «jsencrypt use правило pkcs1, java use Правило pkcs8 ", я попробовал Cipher.getInstance (" RSA / ECB / PKCS1Padding "), но все еще бесполезен.
Есть ли у вас какие-либо идеи для решения этой проблемы