作者qrtt1 (null)
看板java
标题Re: [问题] java的序列化跟php的序列化产生的内容ꐠ…
时间Tue Jul 13 09:24:45 2010
426 生活用语虽然弟私下也这麽用,
但是现在是在讨论您想解决的问题,
只会怪那个 code 是特定群体写的,似乎没有助益。
这只是一般做 request auth 的流程,
有很多设计的范例可以参考 ex. Facebook, Amazon WebService 的 sig
基本流程就是将要传出去的参数 (key1=value1&key2=value2...)
先以特定的排序方式,以 key 排序
并利用事先发的 secret token 加上排序的结果做 hash,其值就是 sig
server 收到後,利用 request 上附的对应 public token 查出 secret token
重覆一次 client 做 sig 的动作,比对二个 sig 是否一致
所以,您可能有几个选择
1. 采用在 java 端能呼叫的 php 实作
http://www.caucho.com/resin-3.0/quercus/
1.1 也有单纯 java 实作的 php serialize function
http://stackoverflow.com/questions/98090/
how-do-i-parse-a-php-serialized-datastructure-in-java
http://hurring.com/scott/code/java/serialize/
但您需要先验证它的结果是否和 php 产出的一模一样
hash function 只要有一点点的不同, 结果就差很多
2. 开一个 web service 或简单的工具
做 php serialize (得小心 secret token 不要泄漏)
3. 用上面的流程重新约定一套不是只有 php 专属的方式
像是避开使用 serialize,单纯以字串操作(任何语言都能轻易实现的方法)
来做 sig 材料的准备。
※ 引述《knives ()》之铭言:
因为426开发的游戏是用java开发的
[....]
1F:→ knives:我也不想阿,谁叫那个php的API也是426写的阿 07/13 08:15
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.168.161
※ 编辑: qrtt1 来自: 140.112.168.161 (07/13 09:28)
2F:推 KanoLoa:XD 都用人家的AP了就不要叫426了麻 07/13 09:53
3F:推 cjcat2266:族群跟API是有什麽关系啊... 07/13 11:08