我正在学校项目中,我必须演示RSA。在序列化输出和BigInteger之间转换的问题
我使用相当基本的ObjectOutputStream序列化对象并将其作为字节数组返回。
的RSA方法我使用的是非常相似的一个found here.
在从序列字节数组,并在RSA加密BigIntegers之间的转换,就会出现问题。
查看字节显示的事实是,在字节数组中有几个负值,说明有问题的转换。
我该如何解决这个问题?
在此先感谢!
我正在学校项目中,我必须演示RSA。在序列化输出和BigInteger之间转换的问题
我使用相当基本的ObjectOutputStream序列化对象并将其作为字节数组返回。
的RSA方法我使用的是非常相似的一个found here.
在从序列字节数组,并在RSA加密BigIntegers之间的转换,就会出现问题。
查看字节显示的事实是,在字节数组中有几个负值,说明有问题的转换。
我该如何解决这个问题?
在此先感谢!
正如问题和tangens的答案中所述,我无法对常规序列化对象执行加密。然而,使用XMLEncoder类,我可以创建一个没有奇数非ASCII可转换数字的XML序列化。
接下来的问题是我无法加密比RSA加密系统的modulo part (or n)长的任何东西,而没有将明文分解为适合的部分。
我希望这会最终帮助别人。
您应该使用http://download.oracle.com/javase/6/docs/api/java/math/BigInteger.html#toByteArray()而不是序列化BigInteger。序列化将为您提供一种仅适用于反序列化的格式,但不适用于进一步的计算。
感谢您的回复!对不起,我没有让自己完全清楚,但我没有序列化BigInteger。鉴于你答案的最后一部分,我试图做的没有道理。你给了我一个想法,我会在明天尝试工作 - 再次感谢! :d –