作者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開發的
[....]
→ knives:我也不想阿,誰叫那個php的API也是426寫的阿 07/13 08:15
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.168.161
※ 編輯: qrtt1 來自: 140.112.168.161 (07/13 09:28)
推 KanoLoa:XD 都用人家的AP了就不要叫426了麻 07/13 09:53
推 cjcat2266:族群跟API是有什麼關係啊... 07/13 11:08