title: RSA encrypt using jsencrypt and decrypt using bouncy castle?
body: <p>Right I've a small problem. I'm using a Javascript library (jsencrypt) to encrypt a message in a browser. This message is then sent to the backend where it is decrypted using a Java library (bouncycastle). My problem is although I can encrypt and decrypt messages using both libraries they don't seem to want to work together. So when I encrypt my message in a browser and send it to the backend I end up getting garbled gibberish. Does anyone have any idea what's going on here?</p>
  
  <p><strong>JSENCRYPT</strong></p>
  
  <pre><code>var text = "This is another msg!";
  var pubkey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwyTZf5gRWJdEevtK7sJSz14lhs1Jw7+aFhGtr4cbDGxdiXH8J+BwuYmBc6QFMhRw7AeYcgkx9zPb3SICzr+oK17RMA6T66dH+GPXp75LFUmfONfk2JdSeO80mMODGctSuefWDvoQ24Cq0Bz+ysrhP7hRqvJso5a0GMNPwt8ErtWfz4HZjSsaaZ7gXga2h5dq1OTcGNfevkDN9CJtFW/0Wwb/F6cnXngVHE41rsN4POUB3IWcX2CrCGxSraa+xsT/P7AJ8HRJ4wcjl9G2K/rlHJ8ZXZKlIuWwEzx0/F0IjE+S93tLpDgt6YJxjWqYqjL2uuJAGmEU323+PWA3jFTC+QIDAQAB";        
  
  var encrypt = new JSEncrypt();
  encrypt.setPublicKey(pubkey);
  var ciphertext = encrypt.encrypt(text);
  console.log("ciphertext  : " + ciphertext);
  
  var decrypt = new JSEncrypt();
  decrypt.setPrivateKey($("#privkey").val());
  var plaintext = decrypt.decrypt(ciphertext);
  console.log("plaintext  : " + plaintext);
  </code></pre>
  
  <p><strong>BOUNCYCASTLE</strong></p>
  
  <pre><code>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));
  </code></pre>