先看易语言的例子
子程序名 | 返回值类型 | 公开 | 备注 |
__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函数