如何将BigInteger转换为ascii字符串

时间:2013-04-16 05:47:52

标签: java encryption integer rsa

正在寻找一些关于如何将大整数值转换为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,我怎么知道要拿出什么(比如什么块)和哪里他们去了?)

如果有人有更好的方法请拍,因为这个人不希望有希望!

谢谢!

1 个答案:

答案 0 :(得分: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);
}