问题标签 [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 投票
1 回答
227 浏览

postgresql - 如何使用 pgcrypto 测试通过(使用领域-digesthashmethod)

我尝试使用 pgcrypt 检查密码

我只能使用两种方法(数据库限制)

  • HtPasswdHash方法
  • HtDigestHash方法

我可以使用第一种方法:

但我必须将方法更改为第二个 - HtDigestHashMethod

在数据库密码看起来像(更改 - 不是真实的):

如何使用 myrealm 检查密码

0 投票
1 回答
2940 浏览

sql - 如何向用户授予执行 pgcrypto 摘要功能

使用 PostgreSQL 9.6

我使用 postgres 用户使用创建扩展 pgcrypto 启用了 pgcrypto。现在我想向我的其他数据库用户授予执行权限。不幸的是我做不到。这是可能的还是您必须是超级用户才能使用 pgcrypto 的摘要功能。


使用下面的答案,我能够成功授予执行该功能的权限。但是 another_user 无法执行该功能。为了使用另一个用户执行此功能,我还需要其他权限吗?

即使当我检查用户的权限时,我也会返回我拥有权限。

谢谢

0 投票
1 回答
103 浏览

postgresql - Pgcrypto 命令产生非标准输出

每次我运行“加密”或“摘要”命令时,我的输出都包含多个字符“\”实例。

参见示例“选择加密('123456789012345','1234','aes');” - 预期输出:“\x34591627f9c8eae417fc7cbbf458592c”

而我的输出如下:“4Y\026'\371\310\352\344\027\374|\273\364XY”

这同样适用于摘要命令;我是否错误地安装了 pgcrypto?

0 投票
1 回答
967 浏览

postgresql - HMAC postgres 错误 - 没有函数与给定的名称和参数类型匹配

在 postgres 中使用 hmac 方法时出现以下错误。请帮忙。

0 投票
1 回答
462 浏览

postgresql - pgp_sym_decrypt_bytea 没有返回预期值,我做错了什么?

我在这个问题上看到的其他帖子说要确保加密字段是 bytea 类型,我的已经是。所以,我不确定我在这里做错了什么。请原谅愚蠢的密码,这只是测试概念证明。基本上,我加密“电子邮件”字段,然后检索并解密它,但值返回为 '\x66616b65406578616d706c652e636f6d'。我尝试向返回值添加 ::text 强制转换,但它没有改变结果。

psql (9.6.8)

-- 这是返回的值,而不是原始电子邮件

0 投票
1 回答
481 浏览

postgresql - 使用 postgres jsonb 类型和 pgcrypto 猛烈抨击

我有一个带有jsonb 列的postgres表,目的是插入灵活的文档,然后进行一些搜索

让我们从表格和一些示范数据开始:

当数据开始流入一些正在创建的索引时(这就是列类型为 jsonb 的原因),例如:

此时一切都按预期工作,我们能够以良好的性能执行良好的搜索,例如:

问题是现在我们需要像我通常使用 pgcrypto 那样加密数据库中的信息,但是我找不到一种方法来加密jsonb 类型而不会失去所有索引能力或字段的搜索能力,这将我推回到一个非常原始状态。

我们发现关于带有 jsonb 类型的 pgcrypto 的信息太少了,例如:Postgresql - 加密 jsonb 数据和 pgcrypto 文档没有说明任何关于 jsonb 类型的信息https://www.postgresql.org/docs/10/static/pgcrypto。 html

有没有办法我们可以做类似 pgp_sym_decrypt(jsonb, 'secret') 的事情?或者我们可以加密数据而不会丢失至少字段搜索能力的另一种机制?(我们可以牺牲索引)

提前致谢,

0 投票
0 回答
116 浏览

postgresql - pgcrypto 和 order by

我想在这样的查询中对某些列进行排序:

无论我使用什么列进行排序,都需要很长时间来计算。我知道我可以将这个选择包装在另一个中并在那里进行排序,但这不能是其他原因的解决方案。为什么这需要这么长时间?难道我做错了什么?

这是查询计划:

EXPLAIN 的结果(分析,缓冲):

0 投票
0 回答
1180 浏览

java - 是否可以在 Hibernate @ColumnTransformer 中为 pgcrypto 更改密码?

我正在使用 pgcrypto 加密基础的某些列的 postgresql 基础。

Java 方面,我使用 JPA 将我的类“映射”到我的数据库。

目前,要加密和解密 java 中的字段,我使用@ColumnTransformer. 例子 :

这工作正常。但我想改变我的密码。我的应用程序将部署在多台服务器上,并且每台服务器的密码都不同。

我尝试了很多东西,我在互联网上搜索但我没有找到任何东西。所以我开始想......这个注释是否有可能?还是我应该以另一种方式加密/解密?也许在存储库中?

PS这里有几个我试过的例子:

在我的配置文件中定义了 application.security.pgcryptoPassword

编辑

我尝试了两件事:

第一个有效,第二个我收到错误:
The value for annotation attribute ColumnTransformer.read must be a constant expression
根据我在互联网上发现的有关此错误的信息,我认为无法在配置文件中更改我的密码并在@ColumnTransformer注释中使用它。

您同意我的观点还是有其他解决方案?

0 投票
1 回答
913 浏览

django - Django - 将加密的 TextField 注释并转换为 FloatField 到小数点后 2 位

我正在使用Django pgcrypto 字段来加密模型中的金额值, Invoice如下所示:

我使用 a 是TextPGPSymmetricKeyField因为我必须将值存储为浮点数并且django-pgcrypto-fields没有 FloatField 的等价物。

现在我需要amount_usd通过 API 传递这个值,并且我必须将小数限制为两位。

我尝试过使用以下内容:

但这会产生错误,因为字节(加密数据)无法转换为浮点数。

我也尝试过使用它:

我收到以下错误:

有没有办法将加密字段转换为最多 2 位小数的 FloatField?

0 投票
1 回答
1215 浏览

postgresql - Postgres 中的 uuid v5

Postgres(或 Postgres 扩展)是否具有 uuid v5 函数(即接受 UUID 名称空间和字符串以生成新 UUID 的函数)?

如果不是本机函数,如何编写此函数?