gs_encrypt
功能描述
Vastbase提供了gs_encrypt工具为输入的明文字符串进行加密操作。
注意事项
出于安全考虑,建议用户在使用gs_encrypt工具前设置HISTCONTROL=ignorespace
,强制不记录敏感历史命令,然后在执行gs_encrypt命令行前面加空格。
- HISTCONTROL变量是用冒号分隔的值列表,可以控制操作系统如何去存储bash历史记录,它可用于忽略重复的命令或带前导空格的命令, 或两者都忽略。当我们不希望某些命令出现在”历史记录”中时, 可以使用HISTCONTROL变量来完成。
- HISTCONTROL变量的取值范围:
- ignoredups:忽略与最近使用的命令相同的命令。
- ignorespace:忽略前面带有空格的命令。
- ignoreboth:同时使用ignorespace和ignoreups。
在操作系统中执行如下命令,设置以空格字符开头的行不包含在历史记录列表中。
HISTCONTROL=ignorespace
语法格式
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。
-u, --kms-userpin=Value
该参数用于指定连接三未信安KMS的用户名和密码。
该参数只有在使用三未信安加密时才会用到。
仅Vastbase G100 V2.2 Build 10及以上版本支持该选项。
-t, --kms-type=Value
使用KMS加密保护数据安全,KMS模式支持SWS-KMS-SM4(三未信安)算法和TAS-KMS-SM4(江南天安)算法。
仅在Vastbase G100 V2.2 Build 10到Build 12版本支持该选项。
使用示例
示例1: 通过输入key和vector明文值来对明文字符串进行加密操作。
gs_encrypt -k password@123 -v 1234567890123456 test_encrypt
返回结果为:
3unfiNsDECKE6FgZf9dnIx0Cc0Z8QSYVD+/UMQggJkIxMjM0NTY3ODkwMTIzNDU2
由于每次加密时使用的IV值(初始化向量)是随机生成的,因此使用同样的key和vector以及明文字符串加密后对应的密文串不相同。单次支持加密的明文字符串最大长度为335字节。
示例2: 已经存在cipher和rand文件,通过文件前缀来对明文字符串进行加密操作。
1、生成cipher和rand文件。
vb_guc generate -S Mppdb@123 -D $GAUSSHOME/bin -o test
返回结果为:
vb_guc encrypt -S ***
2、执行加密操作。
gs_encrypt -f test test_encrypt
返回结果为:
k44hNNFlzSTCyQ/GQAZBCwG7OzgyeVxrZUr58G2q0OkrbqVUfMHU2w0Llv43U1e5
示例3: 通过输入base64加密后的key和vector密文来对明文字符串进行加密操作。
1、输入base64加密后的key。
python
>>> import base64
>>> print base64.b64encode("Vastbase@123");
返回结果为:
VmFzdGJhc2VAMTIz
2、输入base64加密后vector密文。
>>> print base64.b64encode("1234567890abcdef");
返回结果为:
MTIzNDU2Nzg5MGFiY2RIlzg==
3、执行加密操作。
gs_encrypt -B VmFzdGJhc2VAMTIz -D MTIzNDU2Nzg5MGFiY2RIlzg== test_encrypt
返回结果为:
B7fLbJRTNwCDNOp273lvm/aaZmcDweWMEXBWfjELMOgxMjMONTY30DkwYWJjZGVm