先看易语言的例子
| 子程序名 | 返回值类型 | 公开 | 备注 |
| __myDecrypt | 文本型 | | 建议修改,该解密算法需和服务端的加密算法相互对称 __myEncrypt |
| 参数名 | 类型 | 参考 | 可空 | 数组 | 备注 |
| inData | 文本型 | | | | |
| 变量名 | 类型 | 静态 | 数组 | 备注 |
| Modulus | 文本型 | | | |
| Public_exp | 文本型 | | | |
| i | 整数型 | | | |
| RSA加密的RC4KEY的密文 | 文本型 | | | |
| 解密后的RC4KEY明文 | 文本型 | | | |
| RC4_Base64加密后的密文 | 文本型 | | | |
| 解密后的数据原文 | 文本型 | | | |
| ' 本算法是默认的解密算法,建议自行修改(修改了这里,服务端里的高级API里的 __myEncrypt也要修改) |
| ' 请到下载中心下载openrsa_tool,然后用该工具生成RSA密钥对文件,可从里边提取 模数(Modulus [N]) 和 公钥(Public_exp[E] 指数) |
| ' 模数(Modulus [N]) |
| Modulus = “C245FA8CE4EE39CFABD9DF57B8FC9BA96597582C924DD425DF7CE8F075A84A82AE2F3F3E1CA4A9B25728CB530CCB0D3B180EEC725383319FE6D4AB47CBF158AF” |
| ' 公钥(Public_exp[E] 指数) |
| Public_exp = “65537” |
| i = 寻找文本 (inData, “,”, , 假) |
| RSA加密的RC4KEY的密文 = 取文本中间 (inData, 1, i - 1) |
| 解密后的RC4KEY明文 = RSADecrypt (RSA加密的RC4KEY的密文, Modulus, Public_exp) |
| RC4_Base64加密后的密文 = 取文本中间 (inData, i + 1, 取文本长度 (inData) - i) |
| 解密后的数据原文 = 到文本 (解密数据 (到字节集 (BASE64_decode (RC4_Base64加密后的密文)), 解密后的RC4KEY明文, #RC4算法)) |
| 返回 (解密后的数据原文) |
重点说明:
1、__myDecrypt要解密的数据,必须是由服务端高级API里 __myEncrypt函数加密出来的
所以服务端高级API里的__myEncrypt加密算法 和客户端的__myDecrypt解密算法要配匹
2、如果你不想花费精力去修改加解算法的话,那么密钥是一定要改的,由其是 Modulus 和 Public_exp 这两个
Modulus 和 Public_exp可从RSA密钥对文件中获取
RSA密钥对文件的生成方式请参见encode_rsa2函数