1、安装pgrypto扩展插件

postgresql在9.6之后支持extend扩展插件,pgrypto支持各种加密算法,执行以下命令:

create extension pgcrypto;

但是会出现”/usr/local/pgsql/share/extend/pgcrypto.control“文件或目录不存在的问题

解决办法:

在大多数Linux系统中,如果用户使用的是RPM或DEB打包版本的PostgreSQL,则可选的postgresql-contrib软件包中包含所有contrib模块及其关联的安装程序脚本。如果尚未安装,你可能需要使用yum,apt-get或类似的机制添加此软件包。在Solaris系统上,这个软件包名为SUNWpostgr-contrib。

  我们来看下面的命令,请注意必须用超级用户执行:

  CREATE EXTENSION extension_name: 此命令将安装一个名为extension_name的新扩展

  ALTER EXTENSION extension name: 此命令将更改扩展名,大多用于升级扩展。

  DROP EXTENIONS extension_name: 在清理操作完成后,此命令用于删除一个扩展。

  以上命令不能执行或执行报异常,一种可能是contrib模块没有执行编译安装,可以到contrib/目录下执行

  make&make install完成编译安装后在尝试执行以上命令。

示例:

  cd /software/postgresql-9.5.7/contrib

  make

  make install

再次执行CREATE EXTENSION pgcrypto;便可使用encrypt函数和decrypt函数。

2、使用AES加密方法

示例SQL:

-- 加密
SELECT encode(encrypt('abcd1234', '0123456789ABHAEQ', 'aes-cbc/pad:pkcs'), 'base64'); -- IlBruWclssA3y9oOsgMQpw==-- 解密
SELECT encode(decrypt(decode('IlBruWclssA3y9oOsgMQpw==','base64'), '0123456789ABHAEQ', 'aes-cbc/pad:pkcs') , 'escape'); -- abcd1234

3、使用pgcrypto模块进行列的加密和解密

select encode(decrypt(passwd::bytea,'Keypwd','des-ecb'),'escape') from t_user;

4、更新平台加密

例如:a::bytea(字段名称:字段类型)

update test s set b=(SELECT encode(encrypt(a::bytea, '607a8d9d8ff4a98d', 'aes-cbc/pad:pkcs'), 'base64') from test t where s.a=t.a)

参考资料:

PostgreSQL进行列加密解密 - 简书:PostgreSQL进行列加密解密

AES加解密 - Postgresql加密,Java解密 - Jamin.Xie - 博客园:AES加解密 - Postgresql加密,Java解密

https://www.jb51.net/article/204337.htm:postgresql 中的加密扩展插件pgcrypto用法说明

postgre自带的pgrypto之encrypt和decrypt - 简书:postgre自带的pgrypto之encrypt和decrypt

PostgreSQL之 使用扩展Extension - lnlvinso - 博客园:PostgreSQL之 使用扩展Extension

postgres支持AES加密配置相关推荐

  1. aes子密钥生成c语言_HBase配置AES加密

    特别说明:该专栏文章均来源自微信公众号<大数据实战演练>,欢迎关注! 版本: HDP:3.0.1.0 HBase:2.0.0 一.前言 为了避免第三方非法访问我们的重要数据,我们可以给HB ...

  2. HBase配置AES加密

    版本: HDP:3.0.1.0 HBase:2.0.0 一.前言 为了避免第三方非法访问我们的重要数据,我们可以给HBase配置加密算法,目前HBase只支持使用aes加密算法,用于保护静态的HFil ...

  3. 使用AES加密配置文件

    考虑到数据库连接密码直接配置在xml中,项目流转出现密码泄露隐患,这里直接对密码进行AES加密 <!-- 配置 读取properties文件 jdbc.properties -->    ...

  4. cryptojs aes加密每次结果不同_Javascript加密算法标准库,支持Nodejs+浏览器——crypto-js...

    介绍 crypto-js是一个前端Javascript标准加密算法库,CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法.有时候项目涉及到的敏感数据比较多,为 ...

  5. 循序渐进学spring security 第八篇,如何配置密码加密?是否支持多种加密方案?

    文章目录 回顾 密码明文会带来什么问题? 如何加密? PasswordEncoder 加密接口 如何配置? 加密的密码在登录的时候是怎么校验的? 默认的加密是什么? DaoAuthentication ...

  6. snmp v3 参数_snmp v3的安全配置 snmp认证与加密配置(53)

    如果你觉得你得服务器信息暴露在外面没关系,或者说服务器安全限制的很严格,不需要对snmp做一道验证,那么你可以打住,否则继续往下看.snmp v2配置请参考上一节<snmp安装配置 zabbix ...

  7. openwrt支持wpa3加密

    目前openwrt19.07发行版支持wpa3加密,详细请查看openwrt官网wpa3介绍 安装wpad-openssl make menuconfig选择wpad-openssl Network ...

  8. Spring Boot加密配置属性--Spring Cloud Vault详解

    项目中敏感配置信息一般需要进行加密处理,比如数据库密码,Spring Boot内置不提供加密支持,不能加密配置文件信息,在官方文档中提供了自定义Environment和Spring Cloud Vau ...

  9. nodejs php aes加密解密,nodejs aes 加解密实例

    如下所示: 'use strict'; const crypto = require('crypto'); /** * AES加密的配置 * 1.密钥 * 2.偏移向量 * 3.算法模式CBC * 4 ...

最新文章

  1. c语言进位程序,c语言中如何做带进位位移
  2. python you-get下载视频-使用python库之you-get下载视频
  3. php写接口的注意事项,接口的调用注意事项
  4. PyCharm----快捷键
  5. 使用FD_CLOEXEC实现close-on-exec,关闭子进程无用文件描述符
  6. Linux绘图函数与驱动,Linux中与驱动相关的ioctl函数
  7. bin文件编辑_为MediaWiki安装可视化编辑器VisualEditor
  8. MySql 一条更新语句是如何执行的? MySql杂谈、MySql WAL 技术
  9. Java-当前对象this
  10. 【MySQL】Linux下登录mysql时忘记密码了怎么办?
  11. rs485接收中断函数使能_RS485通讯几种常见问题
  12. 谁“杀死”了杀毒软件
  13. BUUCTF-神秘龙卷风
  14. Android开机自动运行
  15. 公司网站被黑 跳转到彩票网站的处理解决办法
  16. 计算机体系结构 第一章 计算机系统结构的基础知识(2)
  17. hive中的order by、sort by、distribute by、cluster by排序
  18. 智星云平台MatDEM问题集
  19. 媒体实录:百度林元庆第一时间解读百度大脑VS.最强大脑第一场
  20. 信息安全数学基础(仅供个人复习使用)

热门文章

  1. SCI、EI论文检索,引用格式
  2. 虚拟机CentOS无网络连接
  3. 老男孩python2020年31期学习记录贴
  4. 数字水印常见攻击类型汇总,噪声,缩放,旋转,剪切(附matlab代码)
  5. pycharm的主菜单消失如何解决(“File-Edit-Navigate-View”等菜单丢失)
  6. Matlab-函数拟合
  7. 小程序-报错 xxx is not defined (已解决)
  8. 平板上pyto软件_平板电脑性价比排行大更新!
  9. html的悬停图片圆形,css3炫酷圆形图片鼠标滑过特效
  10. 存储过程中 IN,OUT,INOUT类型参数的区别