问题标签 [pgcrypto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1370 浏览

postgresql - Postgres 中的 Postgres 11.4 crypt 扩展问题

我在我的 PostgreSQL 数据库中使用 pgcrypto 扩展进行密码加密。我使用相同的密钥来加密所有密码。当我在不同的密码(不同的字符串)中使用相同的密钥时,它会给出相同的输出。

样品:

为什么会这样?。当我传递两个不同的字符串时,它应该给出不同的加密字符串作为输出。这是一个错误吗?我该如何解决这个问题?我无法更改密钥。密钥应该始终相同。

Postgres 版本:

扩展版本:

0 投票
1 回答
940 浏览

node.js - PostgreSQL 加密到 Node.js 解密

在 Postgres 中,我正在使用:

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

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

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

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

0 投票
1 回答
2437 浏览

postgresql - Postgres 创建扩展命令 Docker 容器

我需要为在 Docker 内部运行的 Postgres 实例创建扩展 - 特别是postgis。我关注了其他 SO 帖子,包括这个帖子,但无济于事。

这是我到目前为止所拥有的...

Dockerfile

ext-script.sql

码头工人运行命令

日志

我错过了什么?

更新

我最终使用了postgis dockerhub 图像

当您知道如何时,一切都很容易:)

0 投票
0 回答
595 浏览

sql - 在 postgresql 中旋转加密密钥的最佳方法

我们需要加密 postgresql 9.6 数据库中的一些列。我们计划使用 pgcrytpo 的非对称密钥方法来满足我们的要求。我们使用 pg_dump 保留每日、每周、每月和每年的备份。

我们计划每个月轮换加密密钥,我对此有一些疑问

  1. 在旋转密钥时,我们是否必须解密用以前的密钥加密的数据并再次用新密钥加密,或者我们可以使用任何其他方法?
  2. 由于我们保留了非常旧的备份,我们是否必须恢复备份并解密用以前的密钥加密并再次用新密钥加密的数据?
  3. 密钥轮换的最佳做法和要点是什么?

由于我是第一次进行加密,如果我问了任何愚蠢的问题,请多多包涵。

0 投票
1 回答
138 浏览

ruby-on-rails - 无法加载“pgcrypto”Active Record 适配器

我需要在 postgresql 数据库中存储一些机密数据。为了做到这一点,我使用了 pgcrypto gem。我将此 gem 添加到 Gemfile 中,并将 database.yml 中的适配器名称更改为 pgcrypto。并在捆绑安装后执行以下命令。rails generate pgcrypto:install. 但我收到以下错误Could not load the 'pgcrypto' Active Record adapter. Ensure that the adapter is spelled correctly in config/database.yml and that you've added the necessary adapter gem to your Gemfile. (LoadError) 帮助我解决这个问题。Ruby-2.6.0 和 rails 5.2.4.2

0 投票
2 回答
1054 浏览

postgresql - PostgreSql:如何使用加密列进行查询

设想:

我创建了一个表:

然后我插入了几条记录,并使用 pgcrypto 加密了昵称列数据:

问题: 现在我尝试按照此答案中的建议使用加密的昵称列从表中获取记录:

我什么也得不到。请注意,我必须将 to 强制nickname转换为varchar。即使我将列类型更改为 bytea,我仍然一无所获。请注意,我的对称密钥实际上是相同的:AES_KEY. 我没有在任何地方生成它。我需要改变长度吗?

我的 PostGreSql 版本是 9.6。

0 投票
0 回答
177 浏览

django - Django + PostrgreSQL 性能问题

您好)使用 django-pgcrypto-fields 后出现性能问题:

型号是:

意见.py:第一个:

第二:

所以第二个视图的工作速度要慢 18 倍。如果我将 status_of_assignment=True 更改为 status_of_assignment=False 它的工作速度与第一个一样快。explain() 和 print_sql 向我展示了这一点:对于第一个视图:

第二次

所以我决定设置索引:

我可以在 dbeaver 中看到它们,但性能和解释()中没有任何变化。

我需要如何设置索引,或者问题可能出在其他地方?

0 投票
0 回答
162 浏览

python-3.x - 有没有办法使用 Pycryptodome 获得 pgcrypto 的 pgp_sym_encrypt 的输出?

我有一个熊猫数据框,其中一些列已经使用pgp_sym_encryptpostgres 加密。我知道该加密中使用的密码,并且加密是使用aes256算法完成的。

在进行了一些数据操作之后,我添加了一些我想以完全相同的方式加密的新列。

要进行加密,我必须在新列的每个单元格上调用一个 REST API,这通常会很慢。我想知道如果Pycryptodome我们知道要使用的密码和算法,是否可以使用库来实现相同的目标。

0 投票
0 回答
362 浏览

postgresql - PostgreSQL | 加密货币 | 反向加密索引 | 如何在 PostgreSQL 的帮助下隐藏密钥

我尝试在 PostgreSQL 中使用 pgp_sym_encrypt/pgp_sym_decrypt使用pgcrypto 加密列。在为某些列创建索引时,我使用反向加密来加速通过精确匹配或使用(i)like搜索选择。

我的钥匙有问题。索引在源中没有加密或隐藏密钥。

我尝试通过函数对密钥进行哈希处理,但可以看到其代码,以便清楚表是如何加密的。

你能告诉我如何在反向加密方法的帮助下制作索引的过程中隐藏密钥吗?

提前致谢。

散列键的功能

指数

0 投票
1 回答
360 浏览

python - 来自加密表的 Psycopg2 查询

我遇到了一个问题。使用 . 从表中的加密列中进行选择psycopg2。使用创建测试表后

我能够将加密的值插入其中。
现在我正在尝试使用psycopg2with 从表中查询值:

现在这引发了一个错误:

有趣的是,当像这样传递值时,它可以工作:

但这对于 sql-injection 攻击并不安全,对吧?
有谁知道如何正确地做到这一点?谢谢!