RSA使用jsencrypt加密并使用充气城堡解密?

时间:2016-04-18 14:28:49

标签: javascript java encryption rsa bouncycastle

对,我有一个小问题。我正在使用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>

1 个答案:

答案 0 :(得分:1)

<强> @ EbbeM.Pedersen

  

您正在获得不同的默认填充模式。关键词   像RSA-OAEP padding&amp;想到了PKCS#1填充。

这确实是个问题。我将bouncycastle中的默认填充更改为PKCS#1,现在一切正常。

万分感谢。