首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点加密-无法反向加密

节点加密-无法反向加密
EN

Stack Overflow用户
提问于 2013-12-09 20:10:20
回答 2查看 1.8K关注 0票数 4

为什么这不印上“你好”?

代码语言:javascript
复制
var cipher = crypto.createCipheriv('rc4', 'secret', '');
crypt = cipher.update('hello', 'binary', 'utf8');
crypt += cipher.final('utf8');

var decipher = crypto.createDecipheriv('rc4','secret', '');
data = decipher.update(crypt, 'binary', 'utf8');
data += decipher.final('utf8');

console.log(data); // prints e/l
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-09 20:24:51

utf8不是一个有效的cipher.final()选项,您需要二进制。尝尝这个。

代码语言:javascript
复制
var cipher = crypto.createCipheriv('rc4', 'secret', '');
crypt = cipher.update('hello', 'utf8', 'binary');
crypt += cipher.final('binary');

var decipher = crypto.createDecipheriv('rc4','secret', '');
data = decipher.update(crypt, 'binary', 'utf8');
data += decipher.final('utf8');

console.log(data);
票数 6
EN

Stack Overflow用户

发布于 2013-12-13 01:35:34

工作代码:

代码语言:javascript
复制
var crypto = require('crypto');
var ecr = function(str)
{
    var cipher = crypto.createCipher('aes-256-cbc', 'passphase');
    var cryptedBuffers = [cipher.update(new Buffer(str))];
    cryptedBuffers.push(cipher.final());
    var crypted = Buffer.concat(cryptedBuffers);
    return crypted;
};
var dcr = function(str)
{
    var dcipher = crypto.createDecipher('aes-256-cbc', 'passphase');

    var dcryptedBuffers = [dcipher.update(new Buffer(str))];
    dcryptedBuffers.push(dcipher.final());
    var dcrypted = Buffer.concat(dcryptedBuffers)
        .toString('utf8');
    return dcrypted;
};

console.log(dcr(ecr('hello test')));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20479752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档