问题描述
我想创建一个虚拟数据库,其中有一个包含用户的表。我希望我的用户拥有 firstName 和 lastName 属性。 firstName 是使用非对称加密的 PGP 加密,而 lastName 未加密。我知道这不是一个常见的用例,但我想通过他/她的名字检索一个特定用户。
我的数据库中已有数据。 firstName 是一个字节类型的二进制数据,因为它应该是,而 lastName 只是 varChar。如果需要,我可以以解密的方式检索所有用户,但我无法创建查询来搜索特定用户。
const pgpEncrypt = (data,dearmoredPublicKey) => {
return Sequelize.fn(
'PGP_PUB_ENCRYPT',data,dearmoredPublicKey
)
}
const pgpDecrypt = (columnName: string,deArmoredPrivateKey: any,keyPassphrase: string) => {
return Sequelize.fn(
'PGP_PUB_DECRYPT',Sequelize.cast(Sequelize.col(columnName),'bytea'),deArmoredPrivateKey,keyPassphrase
)
}
...
const allUsers = await User.findAll({
attributes: [
[pgpDecrypt('firstName',postgresDearmoredPrivateKey,pKeyPassphrase),'firstName']
]
})
在所有用户中,我以解密的方式拥有我想要的东西。但是我怎样才能通过名字只搜索一个特定的用户呢?无论我如何尝试,我似乎都无法向“findOne”添加正确的参数。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)