desede ()

阅读(52) 标签: 3des, 加密, 解密,

描述:

使用3DES对称加密计算。

语法:

desede(input,key,iv;charset)

备注:

  使用3DES对称加密计算,对参数input加密/解密。

key为密钥,只有使用CBC加密模式时需要初始化向量参数iv,选项缺省使用ECB加密模式。

inputkeyiv参数类型通常是blob类型,也支持使用字符串自动编码。

key至少为24字节,用字符串时则注意编码后至少为24字节。

iv必须为8字节,用字符串时则注意编码后必须为8字节。

 

 

参数:

input

需要加密或解密的数据。

key

密钥。

iv

初始化向量。

charset

字符编码,缺省为utf-8

参数inputkeyblob类型时,无需设置该参数。

选项:

@d

解密。解密与加密时使用的keyivcharset参数值必须相同。

@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