12.4.?原始的加密函数

这些函数只在数据上运行一次加密,不具有PGP加密的任何先进特性。因此它们有一些主要的问题:

  1. 直接把用户密钥用作加密密钥。

  2. 不提供任何完整性检查来查看被加密数据是否被修改。

  3. 希望用户自己管理所有加密参数,甚至是IV。

  4. 无法处理文本。

因此,在介绍了PGP加密后,不鼓励使用原始的加密函数。

encrypt(data bytea, key bytea, type text) returns bytea
decrypt(data bytea, key bytea, type text) returns bytea
encrypt_iv(data bytea, key bytea, iv bytea, type text) returns bytea
decrypt_iv(data bytea, key bytea, iv bytea, type text) returns bytea

使用type指定的密码方法加密/解密数据。type字符串的语法是:

algorithm [ - mode ] [ /pad: padding ]

其中algorithm是下列之一:

其中mode是下列之一:

其中padding是下列之一:

因此,下面的示例是等效的:

encrypt(data, 'fooz', 'bf')
encrypt(data, 'fooz', 'bf-cbc/pad:pkcs')

在encrypt_iv和decrypt_iv中,iv参数是CBC模式的初始值,ECB会忽略它。如果不是准确的块尺寸,它会被修剪或填充为零。在没有这个参数的函数中,它的值都被默认为零。

XML 地图 | Sitemap 地图