小编dan*_*sgh的帖子

在java中加密字符串,在node.js中解密,错误:解密错误

我正在尝试加密java中的字符串,将其发送到我的node.js服务器,并解密它.但是,当我尝试这样做时,我会在尝试解密时不断收到错误.

Java加密:

String privateKey = "someprivatekey";
String data = "dataToEncrypt";

DESKeySpec keySpec = new DESKeySpec(privateKey.getBytes("UTF-8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey key = keyFactory.generateSecret(keySpec);

byte[] dataToBytes = data.getBytes("UTF-8");      

Cipher cipher = Cipher.getInstance("DES"); 
cipher.init(Cipher.ENCRYPT_MODE, key);

// send this string to server 
String encryptedStr = Base64.encodeToString(cipher.doFinal(dataToBytes), 0);
Run Code Online (Sandbox Code Playgroud)

node.js解密:

var privateKey = 'someprivatekey';
var decipher = crypto.createDecipher('des', privateKey);
var dec = decipher.update(textToDecipher, 'base64', 'utf8'); 
dec += decipher.final('utf8'); 
console.log('deciphered: ' + dec);
Run Code Online (Sandbox Code Playgroud)

但是,我在decipher.final()行的node.js端遇到此错误:

TypeError: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
Run Code Online (Sandbox Code Playgroud)

我已经尝试解码字符串并在节点端使用缓冲区,但它似乎也没有工作,我得到相同的错误解密错误.

var buffer = new Buffer(textToDecipher, 'base64'); …
Run Code Online (Sandbox Code Playgroud)

java encryption node.js

7
推荐指数
1
解决办法
1724
查看次数

标签 统计

encryption ×1

java ×1

node.js ×1