Tag: encryption

Mongooseencryption中间件在聚合之后不会调用

我有一个带有“mongoose-encryption”插件的mongoose模式,例如: let someSchema = new Schema({name, age}); someSchema.plugin(mongoose-encryption, { encryptionKey: 'eKey', signingKey: 'sKey', encryptedFields: ['age'], decryptPostSave: false }); 启动模型和存储库后,我尝试聚合一些查询: let aggregation = []; // just return all the docs. someModel.aggregate(aggregation, (err, persons) => { return persons; }); 因此,我仍然得到encryption的年龄字段,很less有人读到“聚合之后”调用“init”事件的'post'方法(如这里所解释的 – Mongoose Middleware Docs )。 有没有一个好的解决scheme? 或任何其他解决方法? 数据必须encryption。 聚合也是必需的(在现实生活中 – 查找其他collections)

使用Node.js AES点击encryption并使用PyCrypto进行解密

好吧,所以基本上我有问题与Python解密。 我设法使用Node.jsencryption/解密数据 – 使用“aes-128-ctr”,PyCrypto也是如此,但是当我尝试使用Node.js进行encryption并使用Python进行解密时,我得到的解密文本无效。 Node.js代码: var key = "1234567890123456"; var cipher = crypto.createCipher("aes-128-ctr",key) var ctext = cipher.update('asasasa','utf8','hex') + cipher.final('hex') console.log(ctext) // outputs: "f2cf6ecd8f" Python代码: counter = Counter.new(128) cipher = AES.new("1234567890123456", AES.MODE_CTR, counter=counter) cipher.decrypt("f2cf6ecd8f") // outputs: weird encoding characters 顺便说一下,我并不在乎这种encryption的安全级别,我更关心性能。

AES-128-GCM在Node V6上validationIV吗?

鉴于此代码: const bufIV = Buffer.alloc(16); const cipher = crypto.createCipheriv(CIPHER, mykey, crypto.randomFillSync(bufIV)); let encrypted = cipher.update(doc, 'utf8', ENCODING); encrypted += cipher.final(ENCODING); IV也会被authentication吗? 这篇文章的结尾似乎表明,它需要,但我真的不明白这是如何工作的。 使用好的IV并不意味着你的密码是安全的。 你也必须authentication你的密文。 当你这样做时,不要忘记validationIV。

AESencryption不同于节点和PHP

我有两个脚本,都使用相同的algorithm来encryption具有相同的密钥和IV的string。 但结果是不同的。 openssl_encrypt仍然使用不同的填充scheme比节点还是我错过了别的嘻嘻? 节点 const crypto = require('crypto'); var passphrase = '29486a7a37664140'; var iv = '76e69938cdf5bb64'; var text = '1234567890123456'; var cipher = crypto.createCipheriv('aes-128-ctr', passphrase, iv) var crypted = cipher.update(text,'utf8','hex') crypted += cipher.final('hex'); var result = crypted + ':' + iv; console.log('crypted: (' + crypted.length + ' chars)', crypted); // crypted: (32 chars) b94107e56900ec8270a847bbf457eaa6 PHP […]

为BaseJS编码PGPencryption的二进制文件在base64中

我有一个名为file.pgp的PGPencryption文件,它不能是ascii-armor,而是二进制文件。 它看起来像这样: P 3E Q i`p & 9 ֻ <P + [ R0 $ q VJ hu bE"2 M1r j K v @6 3E Ҳ A W{Z FEԭ YV 6g V e ,I Zpw r 8׆ mc h n k p >JH\ G 6 M1|> G fl J 6 ج _ y8 ..{ _⮵ F […]

一起使用Ruby和Nodeencryption库

我已经使用Ruby和EzCrypto库使用aes-128-cbcencryption来encryptionstring。 这是我在Ruby中的encryption代码: require 'rubygems' require 'ezcrypto' @pwd = 'hello'; @salt = 'salt' key = EzCrypto::Key.with_password @pwd,@salt, :algorithm=>"aes-128-cbc" File.open('key.txt','w') do |file| file.write(key.to_s) end File.open('secret.txt','w') do |file| file.write(key.encrypt("hello")) end 现在我想用Node解密这个string。 我什么也没有回来。 我一定在这里做错了什么 以下是我的节点代码。 var crypto = require('crypto'); var fs = require('fs'); var secret = fs.readFileSync('secret.txt', 'binary'); var key = fs.readFileSync('key.txt', 'base64'); var decipher = crypto.createDecipher('aes-128-cbc', key); var […]

Node.js:错误的密码输出

当解密hex编码的AES128输出时,Node.js奇怪地给了我错误的输出。 function decrypt_data( data, key, iv ) { var dc = crypto.createDecipheriv( 'aes-128-cbc', hex_to_str(key), hex_to_str(iv) ); var res = dc.update( data, 'hex', 'utf8' ); res += dc.final( 'utf8' ); console.log(res); return res; } 这个function似乎完全没问题,所有的testing都通过了。 但是当我从真正的节点服务器调用它时,它会返回损坏的输出。 消息的尾巴是好的,但前32个符号是完整的垃圾。 像这样的东西: 8 ro & AMD Accelerated Parallel Processing" : [ "Cayman", "Cayman", "AMD Phenom(tm) II X2 555 Processor" ] […]

有没有办法将自定义encryptionalgorithm添加到nodejsencryption模块? 怎么样?

我需要为每个上传的文件生成一个哈希。 散列值必须与为给定文件生成的散列值git相同(这是一个俗称的sha1变体)。 我看着/nodejs-v0.10.22-src/core-modules-sources/lib/crypto.js 。 库指的是本地绑定。 为了便于携带,我不想依赖本地代码。 有没有一种方法可以将自定义encryptionalgorithm添加到JavaScript中的nodejsencryption模块中,以便我可以执行以下操作: var hash = crypto.createHash('githash'); hash.update('…');

为什么节点AES128密码的输出长度为32字节?

这是我的代码: var crypto = require('crypto') function aese (key) { return crypto.createCipher('aes128', key) } var x1 = crypto.randomBytes(16) var y1 = crypto.randomBytes(16) var a = aese(y1) a.write(x1) a.end() var ct = a.read() console.log(ct.length); //should be 16 but is 32

如何在nodejsencryption库中encryption的浏览器端解密数据?

var express = require('express'); var router = express.Router(); var crypto = require('crypto'); /* GET home page. */ router.get('/', function(req, res) { res.render('index', { title: 'Express' }); }); router.get('/data', function(req, res) { var cipher = crypto.createCipher('aes256', 'pass'); var data = 'myMessage'; cipher.update(data, 'utf8','hex'); var cip = cipher.final('hex'); console.log("Encrypted data = " + cip); // output : […]