2013-03-16 73 views
0

我试图在String的文本上实现RSA加密/解密算法。但是,我在网上找到的所有内容都使用密码,或者他们正在使用整数执行算法。有没有人能给我一个简单的指导来实现这个例如,一个句子? 我不想使用Cipher或任何其他库,因为我想知道它是如何工作的。在不使用密码的情况下在Java中实现RSA

编辑:谢谢大家的帮助。我终于得到它的工作:)

+0

为什么没有对SO搜索,我我发现这个已经实现的几个问题,如http://stackoverflow.com/questions/5818842/problems-encrypting-a-string-using-rsa-algorithm-in-java – Dutts 2013-03-16 08:27:12

+0

感谢。奇怪的是,当我搜索时没有出现。所有我看到的是使用密码或其他库:)) – 2013-03-16 08:31:26

+0

没问题,很乐意帮助 – Dutts 2013-03-16 09:01:36

回答

1

要做的最好的事情是熟悉算法本身。 Wikipedia对它有不错的解释。然后你需要实现模块化操作。当你完成上述操作时,简单地将你想要加密的消息作为一个数字(实际上是一个很大的数字)并遵循wiki中描述的操作。一个句子(或任何其他字符序列)可被视为一个数字作为其正好的字节序列。

+0

是的我已经阅读了维基百科文章。基于此,我已经能够生成公钥和私钥,并且能够对整数进行加密和解密。在转换字符串时,我是否将它转换为大整数?另外,你如何将数字转换回字符串? – 2013-03-16 08:26:33

+0

要将字符序列转换为大整数,只需遍历它,并且每个字符都将当前结果值移动8位,然后添加当前字符值。要将结果转换回字符串,请执行以下操作:按位进行操作,并使用掩码0xFF转换的数字进行操作。然后将结果数字作为字符值添加到结果中,并将转换后的数字8位右移。 – Struchu 2013-03-16 09:09:00

+0

这当然是大端的方式。对于小端,您需要向后迭代转换的字符串,而不是预先附加扩展字符。 – Struchu 2013-03-16 09:18:17

0

RSA全部取决于大素数以及它们如何非常难以分解。有关这方面的进一步知识,我会给你两个资源,将进一步深入解释算法。我建议写下你想在java中创建哪些变量/方法以保持组织。

这里有资源:

YouTube视频这就解释了该算法的前提: RSA Cipher Explained

更多互动幻灯片说明: RSA Algorithm Slide Show

相关问题