javascript – 如何加密pouchdb数据库

前端之家收集整理的这篇文章主要介绍了javascript – 如何加密pouchdb数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

背景:

我正在尝试使用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);
})

猜你在找的JavaScript相关文章