正在寻找一些关于如何将大整数值转换为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,我怎么知道要拿出什么(比如什么块)和哪里他们去了?)
如果有人有更好的方法请拍,因为这个人不希望有希望!
谢谢!
答案 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);
}