[toc]
参考PGCRYPTO
铜墙铁壁 - PostgreSQL pgcrypto加密插件
Postgresql数据加密函数介绍
pgcrypto装置## 装置psql -d <DBNAME> -c 'create schema crypto'sed 's/SET search_path = public/SET search_path = crypto/g' $GPHOME/share/postgresql/contrib/pgcrypto.sql | psql <DBNAME>## 简略验证### 加密select crypto.pgp_sym_encrypt('This is HAWQ', 'password');### 解密select crypto.pgp_sym_decrypt( crypto.pgp_sym_encrypt('This is HAWQ', 'password'), 'password');性能介绍digest()依据给定的算法获取给定数据的hash值。 规范算法反对有md5、sha1、sha224、sha256、sha384和sha512 e.g.
select crypto.digest('This is HAWQ', 'md5');hmac()用key计算hash值,type和digest一样,hmac和digest相似,然而只有晓得key的状况下能力计算出哈希值, 这样能够预防更改数据以及更改哈希匹配的状况,如果key大于hash block size,那么先计算哈希值,哈希值作为key应用 e.g.
select crypto.hmac('This is HAWQ', 'This is key','md5');明码哈希函数**crypt()用来计算hash值. gen\_salt()随机产生一个值作为crypt()的算法参数.** gen\_salt()的type参数为des, xdes, md5, bf. gen\_salt()的iter\_count指迭代次数, 数字越大加密工夫越长, 被破解须要的工夫也越长. crypt()和gen\_salt()的组合次要是进步了逆向破解的难度, 加强了数据的安全性
crypt()反对的算法算法最大明码长度适应?Salt bits形容bf72Yes128Blowfish-based, variant 2amd5unlimitedNo48MD5-based cryptxdes8Yes24Extended DESdes8No12Original UNIX cryptcrypt()迭代次数算法默认最小值最大值xdes725116777215bf8431xdes额定限度,只能是奇数hash算法速度算法Hashes/secFor [a-z]For [A-Za-z0-9]crypt-bf/828246 years251322 yearscrypt-bf/757121 years123457 yearscrypt-bf/611262 years62831 yearscrypt-bf/521133 years33351 yearscrypt-md526812.6 years2625 yearscrypt-des3628377 days19 yearssha15902234 days12 yearsmd523450861 day3 yearscrypt和gen\_salt是以就义hash速度为代价来换取安全性的
...