我想用python加密一个字符串(aes-128-ecb
),并用节点解密字符串。下面是我写的。我不知道为什么它不起作用。
PyCrypto lib文档:http://pythonhosted.org//pycrypto/
节点加密库文档:http://nodejs.org/api/crypto.html
Python代码
from Crypto.Cipher import AES
import binascii
aes_key = '\x26\x33\x3B\x48\x28\x69\x77\x8C\x14\xA2\xBE\xC1\xD4\xE2\xFD\x14'
aes = AES.new(aes_key)
data = aes.encrypt('testtesttesttest')
print binascii.hexlify(bytearray(data))
# output >> 5cc4711e67703657f0a04d887d7c074e
JS代码
var crypto = require('crypto');
var aes_key = new Buffer('26333B482869778C14A2BEC1D4E2FD14', 'hex');
var data = new Buffer('b4364ee66c808b3b0f24070879a3b224', 'hex');
var aes = crypto.createDecipher('aes-128-ecb', aes_key);
aes.setAutoPadding(false);
var data = Buffer.concat([aes.update(data), aes.final()]);
console.log(data.toString());
// output >> X4b�1�5(��̣F<�f
问题在于createDecipher()接受的是密码,而不是密钥。您需要使用createDecipheriv()并为iv参数传递任何缓冲区,因为它在ecb模式下被忽略:
var DUMMY_IV = new Buffer(0),
aes_key = new Buffer('26333B482869778C14A2BEC1D4E2FD14', 'hex'),
aes = crypto.createDecipheriv('aes-128-ecb', aes_key, DUMMY_IV);
aes.setAutoPadding(false);
var data = Buffer.concat([
aes.update('5cc4711e67703657f0a04d887d7c074e', 'hex'),
aes.final()
]);
console.log(data.toString());
// outputs: testtesttesttest
我写这个问题的答案是因为我挣扎了很多(可能是因为缺乏经验),迷失在许多不同的加密/解密节点或Python的方法中。 我想也许我的案子能在将来帮助人们。 我需要做的是: 从表单中获取数据,使用加密(node js)对其进行加密。 我选择使用AES加密。 我是这样开始的(我不会经历我尝试过的一切): > 我遵循了本页末尾的例子 在我的案例中给出: 这可能是javascript和coffeescript
我已经看过了AES-Encryption with Crypto(node js)/decryption with Pycrypto(python)的文章,因为我正试图做完全相反的事情,但我似乎做得不对。这是我到目前为止试过的。。。 Python加密 节点。js解密 每次我尝试运行节点时。js解密,我最终得到错误消息:
null 我很困惑,我应该选择哪种方法?我不知道这两种方法的利弊。
我添加一个子节点到树视图中的当前父节点。但我的问题是,它将新节点添加到当前父节点的末尾,而不是添加在为true)的位置。 这是我的代码: 当然,、、和都是我的代码中的变量,对于任何for循环,它们都是不同的整数和字符串是树视图节点的名称,是固定字符串循环查找整个树,如果有与给定字符串相等的节点,则保留该节点,否则在树中插入一个空节点,然后递归执行。但为了简单起见,让我们:
我正在尝试将java代码转换为NodeJs代码。这有点复杂,因为定制的格式包括密码和salt。 在main方法中有一个例子。 以下是我的java代码: 我正在尝试下面这样的JS代码,但不知道我做错了什么: 它抛出一个错误: 谢谢
我试图在Python中实现以下内容:openssl enc-e-aes-256-cbc-base 64-k"秘密密码"-inplaintext.txt-outciphertext.txt openssl enc-d-aes-256-cbc-base64-k“秘密密码短语”——密文形式。txt-out验证。txt 我已经尝试了几个不同的模块,PyCrypto,M2Crypto等,但似乎无法获得将密码