背景:
我正在尝试使用crypto-pouch库加密pouchdb数据库.
我看了一下https://github.com/calvinmetcalf/crypto-pouch所示的例子
但它似乎对我没有任何作用.
我的代码:
@H_301_12@
但我的代码看不到对输入的数据进行任何加密,或者我看不到生成的任何公钥.
任何线索我应该如何使用带有pouchdb的crypto-pouch库.
最佳答案
编辑:这个答案最初是针对版本1.x的加密包,但对于当前版本(3.x)不正确,在当前版本中db.crypto(密码)不返回承诺,因此更新的代码示例是
原文链接:https://www.f2er.com/js/428983.html@H_301_12@db.crypto(password) // <-- encryption set up
和
@H_301_12@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时它会包装数据库,以便文档被透明地加密和解密
@H_301_12@db.crypto(password).then(function () { // <-- encryption set up })
它会透明地加密您创建的文档并解密您阅读的文档,直到您打电话为止
@H_301_12@db.removeCrypto();
所以,如果你想测试做类似的事情
@H_301_12@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); })