rsa ()

阅读(70) 标签: rsa, 加密, 解密, 公钥, 私钥,

描述:

使用RSA非对称加密计算。

语法:

rsa(input,m)

 

rsa(input,mod:e)

使用modulus/exponent模式的随机密钥加密。

备注:

使用RSA非对称加密计算对input加密/解密。公钥用于加密,私钥用于解密。

参数:

input

需要加密或解密的数据。input参数类型通常是blob类型,也支持使用字符串自动编码。

m

密钥。

e

密钥指数。

mod

密钥模数。

选项:

@d

解密,此时参数input为需要解密的密文。

@k

rsa@k(n),生成长度为n的密钥,返回结果为序列,序列成员为[公钥m,私钥m] ,mblob类型。

n表示密钥的长度,不得小于512n缺省为2048

@km

rsa@km(n),生成modulus/exponent模式的随机密钥,返回结果为序列,序列成员为[密钥模数mod,公钥指数e,私钥指数e]mode为字符串类型。

@bkm

rsa@bkm(n),生成modulus/exponent模式的随机密钥,返回结果为序列,序列成员为[密钥模数mod,公钥指数e,私钥指数e]modeblob类型。

返回值:

二进制值(blob/序列

示例:

 

A

 

1

Hello World!

 

2

=charencode(A1;"GBK")

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

3

=rsa@k(512)

生成长度为512的密钥组成的序列,序列成员为[公钥,私钥]

4

=rsa(A2,A3(1))

使用A3中的公钥对A2内容加密。

5

=rsa@d(A4,A3(2))

使用@d选项,用A3中的私钥对A4内容解密。

6

=charencode(A5;"GBK")

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

使用modulus/exponent模式的随机密钥加密、解密:

 

A

 

1

Hello World!

 

2

=rsa@km()

参数n缺省为2048,使用@km选项,生成modulus/exponent模式的随机密钥,返回序列成员为[密钥模数,公钥指数,私钥指数]

3

=rsa(A1,A2(1):A2(2))

使用A2中的密钥模数及公钥指数对A1内容加密。

4

=rsa@d(A3,A2(1):A2(3))

使用@d选项,用A2中的密钥模数及私钥指数对A3内容解密。

5

=charencode(A4)

A4二进制值生成字符串,缺省使用utf-8字符编码,返回:Hello World!