java序列化问题

与外部系统对接时,遇到一个问题记录一下。

对接系统使用的都是国际标准的RSA加密方式,实现语言是java。我们这边开发系统的时候使用python。在RSA解密的时候解析不出正确的源文。

怀疑原因:由于java默认提供的序列化机制——实现java.io.Serializable接口并生成序列化ID,这样子就可以通过java.io.ObjectInput和java.io.ObjectOutput实现序列化和反序列化。java序列化技术是java语言内部的私有协议,其他语言并不支持。所以java序列化后的字节数组,其他语言没有办法进行反序列化,双方无法互通

解决办法:

  1. 验签的服务用JAVA编写,后续的业务服务用python编写。
  2. 双方同时改动,用通用的序列化框架做序列化,如xml、json、Hessian等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章