在序列化输出和BigInteger之间转换时出现问题

时间:2011-11-14 20:21:34

标签: java serialization bytearray rsa biginteger

我正处于学校项目的中间,我必须在那里展示RSA。

我使用相当基本的ObjectOutputStream序列化对象并将其作为字节数组返回。

我使用的RSA方法与found here.

非常相似

问题出现在序列化的字节数组和RSA加密中的BigIntegers之间的转换。

查看字节可以看出字节数组中有几个负值,说明了有问题的转换。

我该如何解决这个问题?

提前致谢!

2 个答案:

答案 0 :(得分:1)

正如问题和tangens的回答中所提到的,我无法对常规序列化对象执行加密。但是,使用XMLEncoder类,我可以创建一个XML序列化,而不需要奇怪的非ascii可转换数字。

下一个问题是我无法加密比RSA加密系统modulo part (or n)更长的任何内容,而不会将明文分成适合的部分。

我希望这最终会帮助别人。

答案 1 :(得分:0)

您应该使用http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html#toByteArray()而不是序列化BigInteger。序列化将为您提供仅适用于反序列化的格式,但不适用于进一步的计算。