【问题标题】:PostgreSQL encryption to Node.js decryptionPostgreSQL 加密到 Node.js 解密
【发布时间】:2020-02-13 17:48:15
【问题描述】:

在 Postgres 中,我正在使用:

encrypt('text', 'mykey', 'aes')

https://www.postgresql.org/docs/8.3/pgcrypto.html - F.20.4。原始加密函数

我假设这是使用 AES-128 算法的默认值 CBC 模式完成的。

它似乎在数据库中存储为 BINARY(16 字节)并以 base64 形式返回?当我使用 ORM 请求服务器上的列时编码的字符串。

在 Node.js 中,假设我有“mykey”,如何使用 cryptocrypto-js 库将此值转换回其纯文本?

【问题讨论】:

  • 通过在 Node 中使用 AES-128、CBC 算法(提供或获取一些 base64 编码/解码)?
  • PostgreSQL 不提供带有两个参数的函数名称“加密”。你在哪里找到的?
  • @RobertHarvey 是的,但我无法让它与图书馆一起工作。我可以使用一个基本的工作示例来显示解密。
  • @jjanes 抱歉,已更新并澄清。

标签: node.js postgresql cryptojs pgcrypto


【解决方案1】:

你能用 PostgreSQL 的 Pgp_sym_encrypt() 代替,然后用它和https://www.npmjs.com/package/openpgp 来解码吗? PostgreSQL 的原始加密函数并不真正适合与外部系统兼容使用(实际上,根本不适合使用)

【讨论】:

  • 真的。 pgp_sym_encrypt() 是首选。 PostgreSQL 的原始加密函数缺乏清晰的文档。我在stackoverflow.com/a/63095117/709065 的 cmets 中留下了详细信息,希望它可以帮助其他人节省时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 1970-01-01
  • 2012-02-03
  • 2015-02-27
  • 2015-10-31
  • 2013-06-22
相关资源
最近更新 更多