我在做一个涉及到很多加密数据的项目。基本上,这些是序列化为字符串的json对象,然后用aes256加密为cyphertext,然后必须存储在mongo中。
当然,我可以按照上面描述的方式这样做,这将把cyphertext作为字符串存储到bson文档中。但是,这样,如果在处理cyphertex的过程中由于某些原因(例如,不同的字符集或其他原因),cyphertex将被更改,并且我无法再重建原始字符串。有数百万的记录,这是不可接受的(也是缓慢的)。
是否有适当的方法将cyphertex保存为某种原生二进制格式,将其检索为二进制,然后将其返回到原始字符串?我已经习惯了使用字符串,我的二进制格式技能已经很不成熟了。我很想听听你对这个问题的看法。
谢谢大家的意见,
费边
最佳答案
是的:
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