简介:这是客户端和php服务器通信rsa加密解密的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=336640' scrolling='no'>这几天在做一个项目,需要使用到rsa加密解密,使用php公钥加密后,返回给手机客户端解密。同样的,客户端提交给服务器的数据也要经过加密。我们在联调的时候发现,php加密后,手机客户端可以解密,而手机客户端加密后的数据,php解密后返回空。
鉴于这种情况,我们怀疑是因为rsa加密后的数据是Binary类型,显示为乱码,可能在post过程中出现问题,所以我们将各自加密后的数据存进文件中,然后再交换解密。结果成功了,这就证明了确实是在通信过程中出现的问题。
于是我们对加密后的数据进行了base64编码,由于编码后可能会出现一些如“+”、“&”之类http无法解析的字符,所以还要再进行urlencode。于是,新的问题出现了,android客户端提交过来的数据,服务器可以成功解密,而iphone客户端却始终不行,经过比较之后,终于发现android客户端提交过来的数据,服务器不会自动urldecode解码,而iphone已经自动解码过了。于是,我们增加了一个参数判断客户端类型,然后选择是否进行urldecode解码,终于成功了。