对,我有一个小问题。我正在使用Javascript库(jsencrypt)来加密浏览器中的消息。然后将此消息发送到后端,在后端使用Java库(bouncycastle)对其进行解密。我的问题是虽然我可以使用这两个库加密和解密消息,但他们似乎并不想一起工作。因此,当我在浏览器中加密我的消息并将其发送到后端时,我最终会出现乱码乱码。有谁知道这里发生了什么?
JSENCRYPT
String cipherText = "jQ/I+oyyIfG5ARIHZsa6MfxwHciCt+3p6l+bLh4NPinq2s8eDjbO9O8abhVt2xuBQQcPAIaqbiP3Y3vRFYLOD2O+inKWiL1SpSBxvUb0XlWMgLmOqWUL6w6sL2iEla3i5EbdlrkK0uLA7QOUc6/fGVyLVe8VL7Vv4BGlo/cxR2FN74HK4MtLFRNaLKejwD6WbCNQoz4sIMA/Ez8GRSVEMyeYVZoWELShvyIRCqVADboAeuEP5l+oFlzgQfW6HFdpPnX+9TnHrbezdWhXiuJiD1Mq4VTicsya50MNcXJuPDV7NINYZs72UCS8NTYvfVkFc2lO7EUlDvvJ7Ns4wWuuWQ==";
PemReader pemReader = new PemReader(new InputStreamReader(new FileInputStream("priv.pem")));
PemObject pemObject = null;
try
{
pemObject = pemReader.readPemObject();
} finally {
pemReader.close();
}
PrivateKey privateKey = EncryptionUtil.generatePrivateKey(pemObject.getContent());
byte[] plainText = EncryptionUtil.asymDecrypt(privateKey, cipherText.getBytes());
System.out.println(new String(plainText));
BouncyCastle的
<div class="main-cards">
<div class="card" style="width: 55%; height: 300px; float:left;"></div>
<div class="card" style="width: 55%; height: 300px; margin-top: 50px; float: left;"></div>
<div class="card" style="width: 25%; height: 650px;"></div>
答案 0 :(得分:1)
<强> @ EbbeM.Pedersen 强>
您正在获得不同的默认填充模式。关键词 像RSA-OAEP padding&amp;想到了PKCS#1填充。
这确实是个问题。我将bouncycastle中的默认填充更改为PKCS#1,现在一切正常。
万分感谢。