javascript – 如何加密pouchdb数据库

背景:

我正在尝试使用crypto-pouch库加密pouchdb数据库.
我看了一下https://github.com/calvinmetcalf/crypto-pouch所示的例子
但它似乎对我没有任何作用.

我的代码

crypto-pouch-master/bundle.js">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);
})

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...