まいったな

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]


[sb 1.10R]