混淆 pouch-transform 加密和复制
Confusion with pouch-transform encryption and replication
我的目标是确保远程沙发数据库中的所有数据都将被加密。当我按照 pouch-transform 文档中的这个示例进行操作时,我的数据在同步后未在远程端点加密,
pouch.transform({
incoming: function (doc) {
encrypt(doc);
},
outgoing: function (doc) {
decrypt(doc);
}
});
当我在传出时加密时它确实如此,但在这种情况下我的数据也在本地加密。我在这里做错了什么,加密的重点不是在远程数据库中加密数据吗?所以实现这一点的唯一方法是创建 set/get 包装器并在其中加密?我能以某种方式在拨出电话中检测到文档目的地吗?
isn't the point of encryption to have data encrypted in remote db?
没有。如 package description 中所述:
Apply a transform function to documents before and after they are stored in the database.
换句话说,它只修改静态数据。
此插件对正在发送的数据完全没有影响 to/from CouchDB——仅影响数据在 PouchDB 中的存储方式。
如果你也想加密CouchDB中的文档,你需要在应用层进行。即自己对数据进行加密,以加密形式存储在文档中或作为附件。
我也遇到了这个问题。我不想在复制时转换数据,所以我侵入并添加了一个 replicating
标志以在复制时通过包装函数:https://github.com/pouchdb/pouchdb/pull/7774
并修改了 pouch-transform
包以将选项传递给 outcoming
回调:
{
// decrypt it here.
outgoing: async (doc, args: IPouchDBWrapperArgs, type: TransformPouchType) => {
const {options} = args;
if (!options.replicating) {
doc = await this.decryptDoc(doc, options);
}
return doc;
},
};
我的目标是确保远程沙发数据库中的所有数据都将被加密。当我按照 pouch-transform 文档中的这个示例进行操作时,我的数据在同步后未在远程端点加密,
pouch.transform({
incoming: function (doc) {
encrypt(doc);
},
outgoing: function (doc) {
decrypt(doc);
}
});
当我在传出时加密时它确实如此,但在这种情况下我的数据也在本地加密。我在这里做错了什么,加密的重点不是在远程数据库中加密数据吗?所以实现这一点的唯一方法是创建 set/get 包装器并在其中加密?我能以某种方式在拨出电话中检测到文档目的地吗?
isn't the point of encryption to have data encrypted in remote db?
没有。如 package description 中所述:
Apply a transform function to documents before and after they are stored in the database.
换句话说,它只修改静态数据。
此插件对正在发送的数据完全没有影响 to/from CouchDB——仅影响数据在 PouchDB 中的存储方式。
如果你也想加密CouchDB中的文档,你需要在应用层进行。即自己对数据进行加密,以加密形式存储在文档中或作为附件。
我也遇到了这个问题。我不想在复制时转换数据,所以我侵入并添加了一个 replicating
标志以在复制时通过包装函数:https://github.com/pouchdb/pouchdb/pull/7774
并修改了 pouch-transform
包以将选项传递给 outcoming
回调:
{
// decrypt it here.
outgoing: async (doc, args: IPouchDBWrapperArgs, type: TransformPouchType) => {
const {options} = args;
if (!options.replicating) {
doc = await this.decryptDoc(doc, options);
}
return doc;
},
};