如何硬编码可用于加密一次并多次解密的私钥?

时间:2013-07-24 11:19:20

标签: java encryption private-key

在我的应用程序中,我想使用私钥,它将对密码进行一次加密,并解密该工具的次数。

应用程序将运行如下:

  • 用户将使用该工具加密密码。
  • 然后用户将该密码粘贴到属性文件中。
  • 当下次工具运行时,它将读取该密码并解密以登录。

这里我遇到的问题就像,当我加密密码时,我正在使用另一个工具来加密perpose。因此,当我尝试解密时,密钥与生成的密钥不同。如何在这两个工具之间共享私钥..

谢谢..

4 个答案:

答案 0 :(得分:0)

我认为你混淆了symetric和asymetric加密。进行对称加密时,您可以使用相同的密钥。在非对称加密中,您有两个键。用于加密密码的公钥,但您无法使用此密钥对其进行解密。这只能通过私钥实现。 因此,您无需在这些工具之间共享密钥。顾名思义,私钥永远不会离开你的系统。

答案 1 :(得分:0)

你混淆了不同的东西......

当您使用私钥加密某些内容时,您需要使用相应的公钥进行解密。

如果你真的想这样做,那么你也可以将公钥的路径放到属性文件中。

您所描述的是一些仅使用一个密钥的对称密码。

此外,正如dasblinkenlight所指出的那样,使密码可解密会产生一些安全问题,因此请测试您是否可以设计不同的应用程序......

答案 2 :(得分:0)

感谢大家的回复,

我是数据加密的新手。第一次尝试..

我正在开发一个基本上使用脚本运行的工具。代码将保存在安全的服务器上,很少有人可以访问。只是担心的是用户不想在没有加密的情况下将密码保存在属性文件中。因此,如果任何其他人尝试配置属性文件,他们应该无法找出密码。因为存在三种不同的登录凭证将存在三种不同的来源。各个管理员将从同一个文件配置它们。

我找到了一个解决方案。

http://www.code2learn.com/2011/06/encryption-and-decryption-of-data-using.html

哪种解决方案最适合我的问题...

:)

答案 3 :(得分:0)

我认为您的主要关注点是在应用程序之间共享密钥。

在我看来,最好的方法是使用Public-Private Keypair。您可以分发公钥并保护您的私钥安全。

如果使用多个应用程序生成密码,请使用公钥进行加密。 如果一个应用程序生成密码而多个应用程序使用它,那么您可以使用私钥加密,所有其他应用程序都可以使用其捆绑的公钥来解密密码。

重点是,一旦你弄清楚你的密钥对分发,你可以公共或私人来加密或解密,具体取决于应用程序的设计方式。

有关如何创建密钥对和加密/解密数据的更多详细信息,请参阅Beginning Crypto示例。