背景:
我正在尝试使用crypto-pouch库加密pouchdb数据库.
我看了一下https://github.com/calvinmetcalf/crypto-pouch所示的例子
但它似乎对我没有任何作用.
我的代码:
但我的代码看不到对输入的数据进行任何加密,或者我看不到生成的任何公钥.
任何线索我应该如何使用带有pouchdb的crypto-pouch库.
最佳答案
编辑:这个答案最初是针对版本1.x的加密包,但对于当前版本(3.x)不正确,在当前版本中db.crypto(密码)不返回承诺,因此更新的代码示例是
db.crypto(password)
// <-- encryption set up
和
db.crypto(password);
db.put({_id: 'foo',bar: 'baz'}).then(function () {
return db.get('foo');
}).then(function (doc) {
console.log('decrypted',doc);
return db.removeCrypto();
}).then(function () {
return db.get('foo');
}).then(function (doc) {
console.log('encrypted',doc);
})
原始答案(对v1.x仍然有效)如下:
所以文档有点令人困惑(我刚刚清理过)但是当你调用db.crypto时它会包装数据库,以便文档被透明地加密和解密
db.crypto(password).then(function () {
// <-- encryption set up
})
它会透明地加密您创建的文档并解密您阅读的文档,直到您打电话为止
db.removeCrypto();
所以,如果你想测试做类似的事情
db.crypto(password).then(function () {
return db.put({_id: 'foo',bar: 'baz'});
}).then(function () {
return db.get('foo');
}).then(function (doc) {
console.log('decrypted',doc);
})