- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Postgresql 8.4 通过 pgcrypto 进行数据加密时遇到了一些问题。
第一种情况:工作正常:
select pgp_pub_decrypt(pgp_pub_encrypt('fsck', dearmor(pubkey),'compress-algo=1, cipher-algo=aes256'),dearmor(seckey)) from keytbl where keytbl.id=1
-> returns "fsck"
key 1 是没有密码的 pgp
第二种情况:不起作用
select pgp_pub_decrypt(pgp_pub_encrypt('fsck', dearmor(pubkey),'compress-algo=1, cipher-algo=aes256'),dearmor(seckey),'password') from keytbl where keytbl.id=2
-> returns ERREUR: Corrupt data
当我用密码生成 key 时,pgcrypto 不想解密用公钥加密的消息....
有人猜到了吗?这让我发疯...
最佳答案
这似乎是至少 8.4 和 9.0 中的一个已知错误。我过去通过避免使用密码功能并使用 pgp_sym_encrypt
和 pgp_sym_decrypt
来管理 key 的密码来避免这种情况。
一般来说,如果这给您带来问题,您最好的选择是使用经过良好测试的函数分别使用密码短语加密 key 。
让您了解我们是如何做到的:
create or replace function user__replace_keys
(in_public_key bytea, in_private_key bytea, in_passphrase text)
RETURNS user_key
LANGUAGE SQL AS
$$
UPDATE user_key
SET last_resort_key = pgp_pub_encrypt(
pgp_pub_decrypt(
last_resort_key,
pgp_sym_decrypt_bytea(priv_key, $3)
), $2
),
pub_key = $2,
priv_key = pgp_sym_encrypt_bytea($2, $3)
WHERE login = SESSION_USER
RETURNING *;
$$;
请注意,发送到服务器的私钥不得使用密码加密。我们实际上可能会在服务器或中间件中生成它以避免出现问题。这可以避免您遇到的那种错误。
关于postgresql - pgcrypto Postgresql PGP pgp_pub_decrypt 带密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11711958/
我是 postgres 的新手,我需要下载并安装 pgcrypto 扩展。我在命令下运行,但什么也没发生: [root@localhost /]# yum install pgcrypto
我正在尝试使用库 Django Pgcrypto Extensions。 库似乎安装正常并且在我的站点包中。 但是我尝试运行查询我的数据库的给定命令并将运行 PGCrypto 解密函数,但我收到此错误
每次我运行“加密”或“摘要”命令时,我的输出都包含字符“\”的多个实例。 参见示例“select encrypt('123456789012345','1234','aes');” - 预期输出:“\
使用 postgresql 9.6 我使用 postgres 用户使用 create extension pgcrypto 启用了 pgcrypto。现在我想授予我的其他数据库用户执行权限。不幸的是我
我像这样以 super 用户身份安装了 pgcrypto 扩展: CREATE EXTENSION pgcrypto; 作为 super 用户,我测试了它,发现它可以工作: select gen_sa
文档在这里:http://www.postgresql.org/docs/8.2/static/encryption-options.html描述了使用 postgresql 时加密数据的几种方法。
我需要加密 PostgreSQL 9.6 数据库中的某些列。被加密的数据本质上是敏感的;但是,数据不是密码或其他身份验证凭据。这些数据将需要被解密以供用户进行统计分析和消费。 看了几个问答后: Sto
我想知道是否有任何方法可以在 Heroku Shared PostgreSQL 数据库 (5mb) 上启用 pgcrypto?我在我的本地开发箱上运行良好,但它提示说当我推送到 Heroku 时无法找
我在使用 Postgresql 8.4 通过 pgcrypto 进行数据加密时遇到了一些问题。 第一种情况:工作正常: select pgp_pub_decrypt(pgp_pub_encrypt('
我希望将我所有的表作为 aes 256 加密(由于客户要求)存储在 PostgreSQL 中。稍后我将查看解密几列以供分析。但显然加密过程很麻烦,因为我有很多表。我正在使用更新语句分别对每一列进行 p
我通常使用 sha1 散列密码+盐并将密码散列和盐插入 MySQL 数据库。现在我必须在新项目(PHP 项目)中使用 postgres,而且我知道,有更好的方法来加盐密码。我找到了这个 pgcrypt
对于我正在进行的项目,我想在 python 中使用 pgcrypto 兼容加密。以及具体的公钥加密部分。 我遇到的问题是大多数(所有)实现都使用类似子进程的方法来 fork gpg,因为我必须加密大量
我正在使用 PostgreSQL 8.4,并使用 pgcrypto 扩展中的 pgp_sym_encrypt 函数在插入时加密数据。所以我的插入查询看起来像: insert into myTable
我有来自 docker hub 的 Postgres 版本 10.5,但不知道如何安装 pgcrypto 模块。在 /usr/lib/postgresql/10/lib# 中有一个 pgcrypto.
我正在尝试解密使用 pgcrypto 加密的数据。我没有使用 IV,因为它只是一个测试,但我无法在 C# 中解密数据。 在 PostGres 中加密: enc_key := '\\xAACE38F28
我想从 python 调用一些 pgcrypto 函数。即px_crypt .我似乎无法找出正确的目标文件来链接它。 这是我的代码: #include #include "postgres.h" #
我有全新的 AWS RDS Postgres (v 11) 实例。我已经安装了 pgcrypto 扩展,但它不允许再次这样做: CREATE EXTENSION pgcrypto; Error in
Postgresql 的网页说 pgcrypto 包含在 Postgresql 9.1 的下载中。但是,没有 pgcrypto.sql 文件。如果我查看 share\extension 目录,有 3
我正在使用以下代码在 Java 中加密和解密,它似乎工作正常: import javax.crypto.Cipher; import javax.crypto.SecretKey; import ja
我目前正在使用 knex 将我的 node.js 服务器连接到 postgres 数据库,并且我已经开始使用 pgcrypto 来加密一些我的数据。我在加密我的数据方面有点晚了,所以我有几个查询需要更
我是一名优秀的程序员,十分优秀!