2012-08-31 63 views
4

我正在处理涉及大量加密数据的项目。基本上,这些是JSON对象序列化为一个字符串,然后用AES256加密成一个Cyphertext,然后必须存储在Mongo中。 我当然可以按照上面描述的方式来做到这一点,它将密码存储为一个BSON文档。但是,这样,如果出于某种原因,塞普特文本没有得到正确处理(例如,不同的字符集或任何原因),则密文将被更改,我无法重建原始字符串。拥有数百万条记录,这是不可接受的(它也很慢)。mongodb,node.js和加密数据

有没有适当的方式来保存一些本地二进制格式的密码文本,检索它的二进制文件,然后将其返回到原始字符串?我习惯于使用字符串,我的二进制格式技巧很生疏。我非常有兴趣听到你对这个主题的想法。

谢谢大家对您的输入,

的Fabian

回答

4

是:)

var Binary = require('mongodb').Binary; 
var doc = { 
    data: new Binary(new Buffer(256)) 
} 

or with 1.1.5 of the driver you can do 

var doc = { 
    data: new Buffer(256) 
} 

的数据总是返回二进制对象但是,而不是一个缓冲区。以下是文档的链接。

http://mongodb.github.com/node-mongodb-native/api-bson-generated/binary.html

+0

谢谢,但它只是用二进制来解答我的一半不安全感。猜猜我可以将二进制文件保存到数据库中,但是这仍然会导致如何创建二进制文件。 – Fabdrol

+0

http://nodejs.org/api/crypto.html#crypto_class_cipher只是使用节点来加密数据。 js crypto api's并使用Binary类保存结果缓冲区。 – christkv