我正处于学校项目的中间,我必须在那里展示RSA。
我使用相当基本的ObjectOutputStream序列化对象并将其作为字节数组返回。
我使用的RSA方法与found here.
非常相似问题出现在序列化的字节数组和RSA加密中的BigIntegers之间的转换。
查看字节可以看出字节数组中有几个负值,说明了有问题的转换。
我该如何解决这个问题?
提前致谢!
答案 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。序列化将为您提供仅适用于反序列化的格式,但不适用于进一步的计算。