哈希娱乐pgcrypto
哈希游戏作为一种新兴的区块链应用,它巧妙地结合了加密技术与娱乐,为玩家提供了全新的体验。万达哈希平台凭借其独特的彩票玩法和创新的哈希算法,公平公正-方便快捷!万达哈希,哈希游戏平台,哈希娱乐,哈希游戏
加密算法,允许数据库用户以加密形式存储数据的某些列,为敏感数据增加了一层额外的保护。无密钥时,任何用户都无法读取以加密形式存储在数据库中的数据。
pgcrypto插件在数据库服务器内部运行,所有数据和密码都以明文形式在数据库和客户端应用程序之间传输。为了获得最佳安全性,建议在客户端和云原生数据仓库 AnalyticDB PostgreSQL 版之间使用SSL连接。
使用pgcryoto插件之前,请您在云原生数据仓库 AnalyticDB PostgreSQL 版实例插件管理中安装pgcrypto插件。具体操作,请参见安装、升级与卸载插件。
使用digest()函数对字符串ADBPG进行sha256加密存储,示例如下。
crypt()函数中的算法和普通的MD5或者SHA1哈希算法存在以下不同之处:
crypt()函数中算法很慢。密码通常长度较小,crypt()只能用比较复杂的加密算法来增加破解难度。
crypt()函数使用一个随机值(Salt,即盐值),使得具有相同口令的用户将得到不同的密文口令。这也是针对破解算法提供一种额外的安全保护。
crypt()函数的结果中包括了算法类型,因此可以针对不同用户使用不同的算法对密码进行加密。
crypt()函数的一些算法具有自适应性,意味着当计算机性能变得更快时,可以调整该算法使其变得更慢,而不会产生与已有密码的不兼容性。
crypt()函数返回password字符串的哈希值,salt参数由gen_salt()函数生成。由于gen_salt()函数每次都会生成不同的salt,因此对于相同的password字符串,crypt()函数每次也会返回不同的结果。校验密码时可以将之前生成的哈希结果作为salt。
gen_salt()函数用来产生随机的参数输入给crypt,此函数每次都会生成一个随机的盐值(salt)字符串,该字符串同时决定了crypt()函数使用的算法。
type:用于指定一个生成字符串的哈希算法,取值包括DES、XDES、MD5及BF。
iter_count:对于XDES和BF算法,iter_count指定迭代次数,数字越大加密时间越长,被破解需要的时间也越长。
为了避免输出无效的字符,不允许使用pgp_sym_decrypt函数对Bytea数据进行解密,可以使用pgp_sym_decrypt_bytea对原始文本数据进行解密。
key:必须是用于加密的公钥的私钥。如果私钥是用口令保护的,必须在psw中给出该口令。如果没有口令,但想要指定选项,需要给出一个空口令。
为了避免输出无效的字符,不允许使用pgp_pub_decrypt函数对Bytea数据进行解密,可以使用pgp_pub_decrypt_bytea对原始文本数据进行解密。key为公共密钥对应的私钥,如果私钥使用了密码保护功能,必须在psw参数中指定密码;如果没有使用密码保护,想要指定options参数时必须指定一个空的psw。
根据信息安全的相关要求,敏感信息通常需要在数据库中进行加密存储,例如登录密码、信用卡号、身份证号等。pgcrypto插件提供了多种加密算法,总体上分为单向加密和双向加密:
单向加密:属于不可逆加密,无法根据密文解密出明文,适用于数据的验证,例如登录密码验证。
双向加密:属于可逆加密,根据密文和密钥可解密出明文,适用于数据的安全传输,例如电子支付、数字签名等。
云原生数据仓库 AnalyticDB PostgreSQL 版还支持国密算法SM4。SM4属于双向加密,您需要提供密钥,在数据库服务端进行加密。
SM4算法目前只支持Text和Varchar数据类型,应用开发人员需要在业务侧将待加密的数据转成字符串(String)后,再进行加密。
仅支持V6.3.8.9及以上版本,安装或升级插件需要如何查看实例内核版本,请参见查看内核小版本。
使用国密算法SM4之前,您需要在云原生数据仓库 AnalyticDB PostgreSQL 版实例插件管理中安装pgcrypto插件。具体操作,请参见安装、升级与卸载插件。
示例二:使用SM4加密函数将明文数据转成密文数据后,写入密文表。创建表t_plain存储明文数据和表t_enc存储密文数据。