rsa js pidCrypt加密java解密

rsa js pidCrypt加密java解密,java,javascript,openssl,rsa,pidcrypt,Java,Javascript,Openssl,Rsa,Pidcrypt,我试图在浏览器中用pidCrypt加密一些简单的消息,然后在服务器上用java加密解密它。但我一直收到错误信息: javax.crypto.IllegalBlockSizeException:数据长度不得超过128字节 键: /*---* ENCRYPT: RSA 1024 bit ---------*/ // public key var params = certParser(publickey); var key = pidCryptUtil.decodeBase64(

我试图在浏览器中用pidCrypt加密一些简单的消息,然后在服务器上用java加密解密它。但我一直收到错误信息:

javax.crypto.IllegalBlockSizeException:数据长度不得超过128字节

键:

/*---* ENCRYPT: RSA 1024 bit ---------*/  

 // public key  
 var params = certParser(publickey);  
 var key = pidCryptUtil.decodeBase64(params.b64);  


 // new RSA instance  
 var rsa = new pidCrypt.RSA();  


/* RSA encryption 
 * get the modulus and exponent from certificate (ASN1 parsing) 
 * pem(Array of Bytes)        
 */  

 // ASN1 parsing  
 var asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key));  
 var tree = asn.toHexTree();  

 // setting the public key for encryption with retrieved ASN.1 tree  
 rsa.setPublicKeyFromASN(tree);  

 /*** encrypt */  
 var crypted = rsa.encrypt(plaintext);  
 //var crypted64 = pidCryptUtil.encodeBase64(crypted);
       Cipher cipher = Cipher.getInstance("RSA");  
       cipher.init(Cipher.DECRYPT_MODE, myPrivKey);  
       byte[] descryptedData = cipher.doFinal(cyphertext.getBytes());  
密钥是使用openssl genrsa(sslery)生成的。 然后将私钥转换为pkcs#8 der格式并读入java代码

JS代码片段:

/*---* ENCRYPT: RSA 1024 bit ---------*/  

 // public key  
 var params = certParser(publickey);  
 var key = pidCryptUtil.decodeBase64(params.b64);  


 // new RSA instance  
 var rsa = new pidCrypt.RSA();  


/* RSA encryption 
 * get the modulus and exponent from certificate (ASN1 parsing) 
 * pem(Array of Bytes)        
 */  

 // ASN1 parsing  
 var asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key));  
 var tree = asn.toHexTree();  

 // setting the public key for encryption with retrieved ASN.1 tree  
 rsa.setPublicKeyFromASN(tree);  

 /*** encrypt */  
 var crypted = rsa.encrypt(plaintext);  
 //var crypted64 = pidCryptUtil.encodeBase64(crypted);
       Cipher cipher = Cipher.getInstance("RSA");  
       cipher.init(Cipher.DECRYPT_MODE, myPrivKey);  
       byte[] descryptedData = cipher.doFinal(cyphertext.getBytes());  
java代码片段:

/*---* ENCRYPT: RSA 1024 bit ---------*/  

 // public key  
 var params = certParser(publickey);  
 var key = pidCryptUtil.decodeBase64(params.b64);  


 // new RSA instance  
 var rsa = new pidCrypt.RSA();  


/* RSA encryption 
 * get the modulus and exponent from certificate (ASN1 parsing) 
 * pem(Array of Bytes)        
 */  

 // ASN1 parsing  
 var asn = pidCrypt.ASN1.decode(pidCryptUtil.toByteArray(key));  
 var tree = asn.toHexTree();  

 // setting the public key for encryption with retrieved ASN.1 tree  
 rsa.setPublicKeyFromASN(tree);  

 /*** encrypt */  
 var crypted = rsa.encrypt(plaintext);  
 //var crypted64 = pidCryptUtil.encodeBase64(crypted);
       Cipher cipher = Cipher.getInstance("RSA");  
       cipher.init(Cipher.DECRYPT_MODE, myPrivKey);  
       byte[] descryptedData = cipher.doFinal(cyphertext.getBytes());  

可能重复的请使用搜索功能,很简单:我不认为这是相同的问题在这里。我只加密了“你好”。密码是“19C7D98ADEAC0F52A9A91DF2CB90D1782197D62160B280F5B5E2111DED0308C1329123651FE73677F50A6A3CBC6C8F71923653C7CFC51F7779459299160CBE9784B3359E322DD5EEAF9439FB8326A7D629DA121459B69A140B260040BA43BCC65E10FA9B0BB9D55412E6E652B1DF0AEEBA2A69DC79A57EB27DE0”,因此爪哇方面认为它太长了。还有什么建议吗?