如何在NodeJS中使用aes-256-ecb正确encryptionstring并使用OpenSSL的命令行解密?
我正在尝试使用aes-256-ecb
密码通过node.js的内置encryption库encryption长UTF-8编码的string。 波纹pipe是我在Node.js(v0.10.24)中写入testing的encryption代码,以及OpenSSL(OpenSSL 1.0.1 14 Mar 2012)命令行的相应输出和解密命令。
使用node.jsencryption
var crypto = require('crypto'); var cipher = crypto.createCipher('aes-256-ecb','password'); var plaintext = [ 'this is a very long long long long long long', 'long long long long long long long long long', 'long long long long long long string!!!!!!!!' ].join('') console.log(cipher.update(plaintext,'utf8', 'base64') + cipher.final('base64'))
产量
XBnU6WZ9wr2GdA1YWZVhsG+mHQ0xlXXc8rAFEud6I/PqfFZL6Pdit7Sm8v+ViKNZmhgTzi7zfg8GHKFntkCDuj6F54TDaWKAdJRftLP9I+22jiKRvYtpD4SDV2oIy93MM5IMbSoBRvXayNF8H9FQnhACM5MHhHX1pLiR4yCg/l6iHH2BDLrwCSifGcGCaQYx
解密使用OpenSSL
echo -n 'XBnU6WZ9wr2GdA1YWZVhsG+mHQ0xlXXc8rAFEud6I/PqfFZL6Pdit7Sm8v+ViKNZmhgTzi7zfg8GHKFntkCDuj6F54TDaWKAdJRftLP9I+22jiKRvYtpD4SDV2oIy93MM5IMbSoBRvXayNF8H9FQnhACM5MHhHX1pLiR4yCg/l6iHH2BDLrwCSifGcGCaQYx' | openssl enc -d -aes-256-ecb -nosalt -a -pass pass:password
产量
bad decrypt 3074361544:error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length:evp_enc.c:532:
哪一个是错的 我的encryption或解密? 我怎样才能使他们兼容?
在openssl命令中,您应该使用-A选项来base64在一行上处理数据。
openssl enc -d -aes-256-ecb -nosalt -a -A -pass pass:password
- RSAencryption之间的c + +和node.js
- Angular CryptoJs Encryption在Node JS CryptoJS中没有解密
- 您可以使用browserify来要求节点bcrypt客户端,然后将散列发送到服务器?
- 在Node.js中相当于Java PBEWITHSHA1ANDDESEDEencryption?
- 在一次成功的encryption和解密之后,Nodejs Crypto解密失败
- 密码模块中的6个随机字节可以产生的最大值是多less?
- 非对称数字签名Node.JS
- 使用ECDH和nodejsencryption解密秘密
- 使用Node.js / crypto生成ECDSA签名