描述:
使用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] ,m为blob类型。 n表示密钥的长度,不得小于512,n缺省为2048。 |
@km |
rsa@km(n),生成modulus/exponent模式的随机密钥,返回结果为序列,序列成员为[密钥模数mod,公钥指数e,私钥指数e],mod与e为字符串类型。 |
@bkm |
rsa@bkm(n),生成modulus/exponent模式的随机密钥,返回结果为序列,序列成员为[密钥模数mod,公钥指数e,私钥指数e],mod与e为blob类型。 |
返回值:
二进制值(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! |