pgsql
postgres=# \c my_db;
You are now connected to database "my_db" as user "postgres"
my_db=# create extension pgcrypto;
CREATE EXTENSION
如果报错:
ERROR: could not open extension control file "/home/postgres/postgresql-12.10/share/extension/pgcrypto.control": 没有那个文件或目录
解决办法:
到安装原文件目录:
cd /home/postgres/software/postgresql-12.10/contrib/pgcrypt
[postgres@oracle pgcrypto] $ make USE-PGXS=1
[postgres@oracle pgcrypto] $ make USE-PGXS=1 install
/bin/mkdir -p '/home/postgres/postgresql-12.10/lib'
/bin/mkdir -p '/home/postgres/postgresql-12.10/share/extension'
/bin/mkdir -p '/home/postgres/postgresql-12.10/share/extension'
/bin/install -c -m 755 pgcrypto.so '/home/postgres/postgresql-12.10/lib/pgcrypto.so'
/bin/install -c -m 644 ./pgcrypto.control '/home/postgres/postgresql-12.10/share/extension/'
/bin/install -c -m 644 ./pgcrypto--1.3.sql ./pgcrypto--1.2--1.3.sql ./pgcrypto--1.1--1.2.sql ./pgcrypto--1.0--1.1.sql ./pgcrypto--unpackaged--1.0.sql '/home/postgres/postgresql-12.10/share/extension/'
加密方法:
select cast(encrypt('明文','mima','aes') as text)
==生成密文:\x0980edb56771107706c148fd6f902d2a
解密方法:
select convert_from(decrypt('密文','秘钥','aes'),'SQL_ASCII');
select convert_from(decrypt('\x0980edb56771107706c148fd6f902d2a','mima','aes'),'SQL_ASCII');
==生成明文:明文