公钥加密的帮助

3
我正在尝试使用公钥密码学使我的服务器更加安全。我不需要关于其工作原理的示例,我已经了解了这一点。我需要帮助实际加密我发送的字符串...
因此,目前,我只是通过将当前纳秒时间转换为十六进制字符串,重复20次,来生成公钥/私钥字符串。

它会产生如下输出:
8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df8ebe14df

这很好。
但是如何使用此密钥加密我的消息,例如“hi”?我尝试将它们都转换为二进制,并相乘,但是然后我无法解码它们,因为要做到这一点,二进制数字必须有间隔,但是相乘时不能有间隔。有人可以帮帮我吗?

提前感谢!

另外,请让我知道是否需要更多信息!

2个回答

2
这不仅涉及格式问题或二进制或十六进制数字的操作。您不能按照您提出的方式生成公钥/私钥,因为它缺乏通常具有的公钥/私钥的必要加密属性。此外,使用当前纳秒时间作为任何类型的加密密钥几乎没有价值。如果您想在Java中执行此操作,可以使用一些库来执行公钥加密,例如BouncyCastle (http://bouncycastle.org/)。使用它非常容易,并且可以将某种程度的加密安全性实现到应用程序中。

好的...那么,举个例子,如果我被迫制作自己的版本,我需要改变什么? - PulsePanda
据我所知,使用单个密钥,无论它是好是坏,都不能实现公钥加密,无论是RSA、ECC还是其他算法。你需要以某种方式将两个数字相关联,使得一个数字的操作(无论是什么)可以通过应用另一个数字来反转。根据你发布的内容,你可以实现一种(弱)对称密钥加密形式。如果你真的想编写自己的公钥加密代码,请查看RSA算法的工作原理并实现它。不过,你不会发现当前时间有用。 - Martin Dinov

2
请看这个例子:http://stilius.net/java/java_ssl.php 不要试图发明自己的加密算法,虽然听起来很有趣,但也不是很安全。尝试使用已经实现的算法和协议。建议您查看链接。如果只是为了好玩而做这件事,那就继续,但如果是为客户或其他人(至少不是您)使用的东西,则应坚持使用已知的协议。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接