1
我無法獲得crypto
的工作。無法用node.js解密v0.10.18 @ Windows 7 64Bit
- 64位Windows 7
- 的node.js v0.10.18
加密似乎工作:
var fs = require('fs');
var img = new Buffer (fs.readFileSync('./image.png'), 'binary');
var crypto = require('crypto')
, key = 'salt_from_the_user_document'
, plaintext = img
, cipher = crypto.createCipher('aes-256-cbc', key)
, decipher = crypto.createDecipher('aes-256-cbc', key);
cipher.update(plaintext, 'binary', 'base64');
var encryptBinary = cipher.final('base64')
console.log('encrypted :', encryptBinary);
...但解密不是。
decipher.update(encryptBinary, 'base64', 'binary');
var decryptBinary = decipher.final('binary');
console.log('decrypted :', decryptBinary);
與node-efs相同的解密問題。
var efs = require('efs').init('aes-128-cbc', 'password');
// encrypt and write file
efs.writeFileSync('/tmp/example', 'hello world');
// decrypt and read file
efs.readFileSync('/tmp/example');
與file-encryptor同樣的問題。
此作品(僅字符串):
var crypto = require('crypto')
, key = 'salt_from_the_user_document'
, plaintext = 'password'
, cipher = crypto.createCipher('aes-256-cbc', key)
, decipher = crypto.createDecipher('aes-256-cbc', key);
cipher.update(plaintext, 'utf8', 'base64');
var encryptedPassword = cipher.final('base64')
decipher.update(encryptedPassword, 'base64', 'utf8');
var decryptedPassword = decipher.final('utf8');
console.log('encrypted :', encryptedPassword);
console.log('decrypted :', decryptedPassword);
感謝Golo的快速回復。加密工作。但不解密。 – oli
var decrypted = cipher.update(明文,'base64','binary');' 解密+ = decipher.final('binary'); – oli
[截圖](https://s3-eu-west-1.amazonaws.com/uploads-eu.hipchat.com/56830/387870/ee6ndrbskk5apca/cryptojs.png) – oli