pgcrypto
PostgreSQL 扩展提供了加密功能,例如
- 通用哈希
- 密码哈希
- PGP 加密
- 原始加密
- 随机数据
有关这些功能和可用选项的更多信息,请参阅 pgcrypto 文档。
pgcrypto
扩展允许您在数据库中加密、解密、哈希和创建数字签名。Timescale 理解您的数据有多么宝贵,并保护敏感信息。
安装
pgcrypto
扩展CREATE EXTENSION IF NOT EXISTS pgcrypto;您可以使用
\dx
命令确认扩展是否已安装。已安装的扩展将列出List of installed extensionsName | Version | Schema | Description---------------------+---------+------------+---------------------------------------------------------------------------------------pg_stat_statements | 1.10 | public | track planning and execution statistics of all SQL statements executedpgcrypto | 1.3 | public | cryptographic functionsplpgsql | 1.0 | pg_catalog | PL/pgSQL procedural languagetimescaledb | 2.11.0 | public | Enables scalable inserts and complex queries for time-series data (Community Edition)timescaledb_toolkit | 1.16.0 | public | Library of analytical hyperfunctions, time-series pipelining, and other SQL utilities创建一个名为
user_passwords
的表CREATE TABLE user_passwords (username varchar(100) PRIMARY KEY, crypttext text);将值插入到
user_passwords
表中,并将<Password_Key>
替换为您选择的密码密钥INSERT INTO tbl_sym_crypt (username, crypttext)VALUES ('user1', pgp_sym_encrypt('user1_password','<Password_Key>')),('user2', pgp_sym_encrypt('user2_password','<Password_Key>'));您可以使用以下命令确认密码已加密
SELECT * FROM user_passwords;加密后的密码将列出
username | crypttext----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------user1 | \xc30d040703025caa37f9d1c731d169d240018529d6f0002b2948905a87e4787efaa0046e58fd3f04ee95594bea1803807063321f62c9651cbf0422b04508093df9644a76684b504b317cf633552fcf164fuser2 | \xc30d0407030279bbcf760b81d3de73d23c01c04142632fc8527c0c1b17cc954c77f16df46022acddc565fd18f0f0f761ddb2f31b21c4ebe47a48039d685287d64506029e027cf29b5493b574df(2 rows)要查看解密的密码,请将
<Password_Key>
替换为您创建的密码密钥SELECT username, pgp_sym_decrypt(crypttext::bytea, '<Password_Key>')FROM user_passwords;解密后的密码将列出
username | pgp_sym_decrypt----------+-----------------user1 | user1_passworduser2 | user2_password(2 rows)
关键词
在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面。