Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android RSA和node.js RSA加密/解密_Java_Android_Node.js_Encryption_Cryptography - Fatal编程技术网

Java Android RSA和node.js RSA加密/解密

Java Android RSA和node.js RSA加密/解密,java,android,node.js,encryption,cryptography,Java,Android,Node.js,Encryption,Cryptography,我目前在服务器上解密RSA加密数据时遇到问题,该服务器正在使用node.js并使用node RSA库进行加密/解密 在我的Android客户端上接收公钥时没有任何问题,但在尝试解密数据时,我遇到以下异常: TypeError: Cannot call method 'toString' of null at NodeRSA.module.exports.NodeRSA.$getDecryptedData (C:\src\qteddev\node\nod e_modules\node-rs

我目前在服务器上解密RSA加密数据时遇到问题,该服务器正在使用node.js并使用node RSA库进行加密/解密

在我的Android客户端上接收公钥时没有任何问题,但在尝试解密数据时,我遇到以下异常:

TypeError: Cannot call method 'toString' of null
    at NodeRSA.module.exports.NodeRSA.$getDecryptedData (C:\src\qteddev\node\nod
e_modules\node-rsa\src\NodeRSA.js:283:27)
    at NodeRSA.module.exports.NodeRSA.decrypt (C:\src\qteddev\node\node_modules\
node-rsa\src\NodeRSA.js:170:21)
    at IncomingMessage.<anonymous> (C:\src\qteddev\node\main.js:187:36)
    at IncomingMessage.emit (events.js:92:17)
    at _stream_readable.js:929:16
    at process._tickCallback (node.js:419:13)
以下是客户端的加密:

cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, QtedEncryption.publicKey);
cipherData = cipher.doFinal(password.getBytes());
password = Base64.encodeToString(cipherData, Base64.DEFAULT);
然后通过POST请求将密码发送到服务器

var password = key.decrypt(requestData.password,'utf8');
使用此代码启动服务器时会生成公钥和私钥

var rsa = require('node-rsa');

//create RSA-key
var key = new rsa({b: 1024}); 
console.log(key.getPrivatePEM());
console.log(key.getPublicPEM());

尝试
Cipher.getInstance(“RSA/ECB/oaepwithsha1和mgf1填充”)取而代之
'node-rsa'
似乎默认为OAEP填充,当前您根本没有使用rsa填充方案。

有关此问题的任何信息?
var rsa = require('node-rsa');

//create RSA-key
var key = new rsa({b: 1024}); 
console.log(key.getPrivatePEM());
console.log(key.getPublicPEM());