客户端和php服务器通信rsa加密解密

这几天在做一个项目,需要使用到rsa加密解密,使用php公钥加密后,返回给手机客户端解密。同样的,客户端提交给服务器的数据也要经过加密。我们在联调的时候发现,php加密后,手机客户端可以解密,而手机客户端加密后的数据,php解密后返回空。


鉴于这种情况,我们怀疑是因为rsa加密后的数据是Binary类型,显示为乱码,可能在post过程中出现问题,所以我们将各自加密后的数据存进文件中,然后再交换解密。结果成功了,这就证明了确实是在通信过程中出现的问题。


于是我们对加密后的数据进行了base64编码,由于编码后可能会出现一些如“+”、“&”之类http无法解析的字符,所以还要再进行urlencode。于是,新的问题出现了,android客户端提交过来的数据,服务器可以成功解密,而iphone客户端却始终不行,经过比较之后,终于发现android客户端提交过来的数据,服务器不会自动urldecode解码,而iphone已经自动解码过了。于是,我们增加了一个参数判断客户端类型,然后选择是否进行urldecode解码,终于成功了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【课程介绍】     课程目标:             - 有状态登录和无状态登录的区别             - 常见的非对称加密算法和非对称的加密方式             - 老版本只使用jwt进行加密的弊             - 授权中心的授权流程             - 如何整合网关组件实现jwt安全验证             - 理解什么是公钥什么是私钥      - 深刻理解授权流程什么是有状态? 有状态服务,即服务需要记录每次会话的客户信息,从而识别客户身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?- 服务保存大量数据,增加服务压力- 服务保存用户状态,无法进行水平扩展- 客户请求依赖服务,多次请求必须访问同一台服务器。什么是无状态? 微服务集群中的每个服务,对外提供的都是Rest风格的接口。而Rest风格的一个最重要的规范就是:服务的无状态性,即:- 服务不保存任何客户请求者信息- 客户的每次请求必须具备自描述信息,通过这些信息识别客户身份带来的好处是什么呢?- 客户请求不依赖服务的信息,任何多次请求不需要必须访问到同一台服务- 服务的集群和状态对客户透明- 服务可以任意的迁移和伸缩- 减小服务存储压力

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值