gs_encrypt

背景信息

openGauss提供了gs_encrypt工具为输入的明文字符串进行加密操作。

工具运行产生的日志位于$GAUSSLOG/bin/gs_encrypt目录下,每个日志最大16MB,最多保留50个。如果环境变量GAUSSLOG没有配置,则不会产生日志文件。

语法

gs_encrypt [OPTION]... PLAINTEXT

说明:

  • “PLAINTEXT”前不需要加短选项或长选项。
  • “PLAINTEXT”是需要加密的明文字符串。

参数说明

  • -?, --help

    显示帮助信息。

  • -V, --version

    显示版本号信息。

  • -k PASSWORD, --key=PASSWORD

    用户输入的口令,用于派生出加密操作时使用的密钥。口令长度有效范围为大于等于8个字符,小于等于16个字符,并且至少包含大写字母、小写字母、数字和特殊字符中的三种字符。

  • -v VectorValue,--vector=VectorValue

    用户输入的盐值,计算口令单向哈希时用于对口令进行加扰。字符串长度必须等于16。

  • -f FilePrefix, --file-prefix=FilePrefix

    加密操作时使用的cipher和rand文件前缀字符串。cipher和rand文件必须存放在$GAUSSHOME/bin目录下。

  • -B Value,--key-base64=Value

    加密时使用的明文密钥,以base64编码。

  • -D Value, --vector-base64=Value

    加密时使用的随机数,以base64编码。base64编码前的字符串长度必须为16。

    说明: 出于安全考虑,建议用户在使用gs_encrypt工具前设置HISTCONTROL=ignorespace,强制不记录敏感历史命令,然后在执行gs_encrypt命令行前面加空格。

示例

示例1:通过输入key和vector明文值来对明文字符串进行加密操作。由于每次加密时使用的IV值是随机生成的,因此使用同样的key和vector以及明文字符串加密后对应的密文串不相同。单次支持加密的明文字符串最大长度为335字节。

gs_encrypt -k password@123 -v 1234567890123456 test_encrypt

命令回显:

G0R7Y2oROfuiEjWtUBx9+eHP3I21A1wMOJ2onVQIiAsxMjM0NTY3ODkwMTIzNDU2

示例2:已经存在cipher和rand文件,通过文件前缀来对明文字符串进行加密操作。

  1. 生成cipher和rand文件。

    gs_guc generate -S Mppdb@123 -D $GAUSSHOME/bin -o test
    

    命令回显:

    gs_guc encrypt -S ***
    
  2. 执行加密操作。

    gs_encrypt -f test test_encrypt
    

    命令回显:

    tSWpR8aFyF4GHVIVO7QNXhEMNlTcqRMrk172nAf2hLgSQwhcFWyP7X0QVS0SONon
    

示例3:通过输入base64转码后的key和vector密文来对明文字符串进行加密操作。

  1. 输入base64转码后的key。

    python
    >>> import base64
    >>> print base64.b64encode("XXXXXXXXX");
    

    命令回显:

    R2F1c3NAMTIz
    
  2. 输入base64转码后vector密文。

    >>> print base64.b64encode("1234567890abcdef");
    

    命令回显:

    MTIzNDU2Nzg5MGFiY2RlZg==
    
  3. 执行加密操作。

    gs_encrypt -B R2F1c3NAMTIz -D MTIzNDU2Nzg5MGFiY2RlZg==  test_encrypt
    

    命令回显:

    V7mpnsfIHTjVTYGw1YHI0c6aY0N4J5L7BtU4CqDoeIkxMjM0NTY3ODkwYWJjZGVm
    
意见反馈
编组 3备份
    openGauss 2024-12-02 00:55:15
    取消