aes()

阅读(97) 标签: aes, 加密, 解密,

描述:

使用AES对称加密计算。

语法:

aes(input,key,iv;charset)

备注:

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

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

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

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

参数:

input

需要加密或解密的数据。

key

密钥。

iv

初始化向量。

charset

字符编码,缺省为utf-8

参数inputkey皆为blob类型时,无需设置该参数。

选项:

@d

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

@c

使用CBC加密模式。当iv省略时使用默认值。

@n

使用nopadding填充方式,此时input的字节数必须是16的整数倍,否则报错。

返回值:

二进制值(blob

示例:

加密与解密:

 

A

 

1

Hello World!

 

2

v7wz+QhTtHkYmXl/

 

3

=charencode(A1; "GBK")

A1字符串生成blob二进制值。

4

=charencode(A2; "GBK")

A2字符串生成16字节的blob二进制值。

5

=aes(A3,A4)

使用AES对称加密方式对A3内容加密,A4为密钥,返回blob二进制值。

6

=aes@d(A5,A4)

使用@d选项,对A5解密,密钥必须与A5中加密时一致,返回blob二进制值。

7

=charencode(A6;"GBK")

A6中的blob二进制值生成字符串,返回结果:Hello World!

CBC加密模式:

 

A

 

1

Hello World!

 

2

v7wz+QhTtHkYmXl/

 

3

abcdefghijkl+-$/

 

4

=aes@c(A1,A2,A3;"utf-8")

使用@c选项,表示CBC加密模式,A3为初始化向量,字符编码为utf-8,编码后密钥与初始化向量均为16字节。

5

=aes@cd(A4,A2,A3)

A4解密,密钥与初始化向量参数必须与A4中加密时一致,字符编码参数缺省使用utf-8。返回二进制值。

6

=charencode(A5;"utf-8")

A5二进制值生成字符串,返回结果:Hello World!

Nopadding填充方式:

 

A

 

1

Hello!!

 

2

v7wz+Qh

 

3

=charencode(A1;"unicode" )

A1字符串生成16字节的blob二进制值。

4

=charencode(A2;"unicode")

A2字符串生成16字节的blob二进制值。

5

=aes@n(A3,A4)

使用@n选项,表示nopadding填充方式,此时要求input参数的字节数必须是16的整倍数。返回blob二进制值。

6

=aes@nd(A5,A4)

A5解密。

7

=charencode(A6;"unicode")

A6二进制值生成字符串,返回结果同A1