我在JAVA中用2048位密钥编写RSA算法。生成的密钥存储为BigIntegers数据类型。
int x=in.read();
while(x!=-1)
{
data[a++] = BigInteger.valueOf(x);
x=in.read();
}
这段代码使用FileInputStream类从文件中读取输入。 BigInteger数组数据存储输入,然后对其执行指数模运算,然后以字节数组的形式写入另一个文件。
for(int t=0;t<enc.length;t++)
{
out.write(enc[t].toByteArray());
}
输出是加密数据。要解密它,我需要从输出文件中读取加密数据,但是在以字节数组的形式从文件读取字节流时,我不会得到相同的BigInteger数字再次指数模数,因为代码不会知道要用多少字节来制作相同数量的字节。是否有任何其他方法可以写入BigInteger数字,然后从生成相同BigInteger数字的文件中读取它,或者从文件中存储和检索RSA加密数据的任何其他技术?