描述:
使用3DES对称加密计算。
语法:
desede(input,key,iv;charset)
备注:
使用3DES对称加密计算,对参数input加密/解密。
key为密钥,只有使用CBC加密模式时需要初始化向量参数iv,选项缺省使用ECB加密模式。
input、key和iv参数类型通常是blob类型,也支持使用字符串自动编码。
key至少为24字节,用字符串时则注意编码后至少为24字节。
iv必须为8字节,用字符串时则注意编码后必须为8字节。
参数:
input |
需要加密或解密的数据。 |
key |
密钥。 |
iv |
初始化向量。 |
charset |
字符编码,缺省为utf-8。 参数input和key为blob类型时,无需设置该参数。 |
选项:
@d |
解密。解密与加密时使用的key、iv、charset参数值必须相同。 |
@c |
使用CBC加密模式。当iv省略时使用默认值。 |
@n |
使用nopadding填充方式,此时input的字节数必须是8的整数倍,否则报错。 |
返回值:
二进制值(blob)
示例:
加密与解密:
|
A |
|
1 |
Hello World! |
|
2 |
4p9KmL6QrT2wX5Y7uV3zS8D0N1 |
|
3 |
=charencode(A1; "GBK") |
用A1字符串生成blob二进制值。 |
4 |
=charencode(A2; "GBK") |
用A2字符串生成24字节的blob二进制值。 |
5 |
=desede(A3,A4) |
使用3DES对称加密方式对A3内容加密,A4为密钥,返回blob二进制值。 |
6 |
=desede@d(A5,A4) |
使用@d选项,对A5解密,密钥必须与A5中加密时一致,返回blob二进制值。 |
7 |
=charencode(A6;"GBK") |
用A6中的blob二进制值生成字符串,返回结果:Hello World! |
CBC加密模式:
|
A |
|
1 |
Hello World! |
|
2 |
4p9KmL6QrT2wX5Y7uV3zS8D0N1 |
|
3 |
abcdefgh |
|
4 |
=desede@c(A1,A2,A3;"utf-8") |
使用@c选项,表示CBC加密模式,A3为初始化向量,字符编码为utf-8,编码后密钥为24字节,初始化向量为8字节。 |
5 |
=desede@cd(A4,A2,A3) |
对A4解密,密钥与初始化向量参数必须与A4中加密时一致,字符编码参数缺省使用utf-8。返回blob二进制值。 |
6 |
=charencode(A5;"utf-8") |
用A5二进制值生成字符串,返回结果:Hello World! |
Nopadding填充方式:
|
A |
|
1 |
Hello!! |
|
2 |
4p9KmL6QrT2 |
|
3 |
=charencode(A1;"unicode" ) |
用A1字符串生成16字节的blob二进制值。 |
4 |
=charencode(A2;"unicode") |
用A2字符串生成24字节的blob二进制值。 |
5 |
=desede@n(A3,A4) |
使用@n选项,表示nopadding填充方式,此时要求input参数的字节数必须是8的整倍数。返回blob二进制值。 |
6 |
=desede@nd(A5,A4) |
对A5解密。 |
7 |
=charencode(A6;"unicode") |
用A6二进制值生成字符串,返回结果同A1。 |