まいったな
2006.07.04 (火) 12:12
ugnag
しかし、PAR3の場合は複雑なので、とりあえずGCで試してみることにした。
GCの方が、PS2より少しはシンプルだからだ。
幸い、GPCでGCの暗号化モジュールはJAVAにしてあるので、JAVAからJavaScriptへ移植すればいい。
(これも結構大変な作業だが、C言語からの移植よりはましだ)
一応、ロジックの移植は終わり、とりあえず試してみる。
全然ダメだ。
結果がマイナス値になったりしている。
原因を調べていくと、JavaScriptの変数そのものに問題があることがわかった。
つまり、
・変数がバリアント型だということ
・符号無し32ビット整数がない
なんか、内部的に符号付き32ビット整数になったり、64ビット浮動小数点になったりしているような感じがする。
例えば、
b = 0x0FFFFFFF; //7桁
b = b & 0x080808080;
document.write(b.toString(16));
とすると、
808080
と表示される。
が
b = 0xFFFFFFFF; //8桁
b = b & 0x080808080;
document.write(b.toString(16));
とすると、
-7f7f7f80
となってしまう。
当然、80808080を期待しているわけだが。。。
PARの暗号化にはビット演算が必須なのだが、これでは正しい計算はできない。
さて、どうしたものか。。。
[7] beginning...
[1] comments (1)
-
[7] << フォーマッター(続き)
[9] GC暗号化スクリプト >>
[0] [top]