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 回答