(我也学那些人,也来贴代码了……)

因为某IOS应用后台中要使用RSA加密,所以自己完成了下面这个RSA加密的过程。要用到PHP的openssl扩展。

首先在Linux下面用openssl命令生成私钥,利用私钥生成公钥。私钥为1024位。

加密过程主要就是将明文以117长度分割(因为1024位密钥最大只能加密长度为117的字符串),将他们连接起来,最后base64加密,便于网络传输。这里使用了url安全的base64加密,就是把+/两个符号替换成-_ ,尾部的=去掉,解密的时候再替换回来。因为传输过程中+会被转换成空格。

解密过程是先base64解密出来再分组进行RSA解密,最后连接起来字符串就是了。昨天晚上因为搞错一处的变量名,和服务器私钥加密后在客户端还是私钥解密,这两个问题搞到1点多也没发现,还是今天弄好的……

这个类主要是在构造的时候选择是用公钥还是私钥,因为考虑到服务器只用到了私钥所以就这么实现的,不知道好不好。

下面放码

下面写个小demo来测试这个类。

(千万不要在意上面那段文字呦。。。)