0

大きな整数値をASCII文字の文字列に変換する方法について、大きな変換に関するヘルプを探していました。

RSA暗号化/復号化でいくつかの作業を行った後、この140472961968666030223を復号化してメッセージにしました。これをASCII文字列に変換する必要があります。ascii文字列を大きな整数に変換するこの方法を見つけましたが、この方法を元に戻す方法を一生理解できません。

注: 8 文字のブロックの場合、結果の整数は次のように計算することもできます。

R = c 7 * 256 7 + c 6 * 256 6 + c 5 * 256 5 + c 4 * 256 4 + c 3 * 256 3 + c 2 * 256 2 + c 1 * 256 + c 0 * 1

その文字や何かを知っていれば元に戻すのは簡単ですが、この場合、私が持っているのはその BigInteger だけです。何を取り出すか (どのブロックなど) とそれらがどこに行くのかをどのように知る必要がありますか? )

これは有望に見えないので、誰かがより良い方法を持っている場合は撃ってください!

ありがとう!  

4

1 に答える 1

0

Rが BigInteger の場合、次のように配列を復元できますc

byte [] c = new byte[8];
for (int i=0; i<c.length; i++) {
    c[i] = R.byteValue();
    R = R.shiftRight(8);
}
于 2013-04-18T13:56:12.297 に答える