0

我有一个程序,其中用户名和密码是硬编码的。所以我想将该可执行 JAR 文件传递​​给在同一网络中工作的同事。我想保护密码并且不想将其透露给任何人。有没有一种方法可以让我传递 JAR 文件并确保我的密码安全,而无需任何人知道密码。

也许如果有一种方法可以将一些密码存储在文件中并将其保存在服务器上,并且每次 JAR 文件尝试运行时,它都会从远程文件中获取通行证?

4

2 回答 2

1

你的标题和你问题的内容在某种程度上是矛盾的。首先,硬编码的密码并不安全

我会推荐一种不同的设计:创建某种无需密码即可访问的服务;例如基于客户端的网络地址。该服务将是唯一真正需要知道此密码的部分。到了必须更改某些内容(例如密码或您正在使用的实际软件)的那一天……您只需要更改一件事。

含义:配置您的 JAR 以触发一些 RESTful 服务,例如......这反过来又在内部调用任何需要该用户名/密码的应用程序。

于 2015-10-16T14:49:02.830 回答
1

您可以使用加盐散列(散列随机数 + 密码)。它会要求他们输入密码,并对密码和盐进行哈希处理,并将其与存储的密码进行比较。这是非常弱的安全性,但至少比将其与硬编码密码进行比较要好。

散列函数应该是加密安全的,如 SHA256。如果您不熟悉加密哈希,它会获取任何大小的数据并将其分解为固定大小的小指纹(MD5 为 128 位,SHA1 为 160 位,SHA256 为 256 位等)

以下是 md5 的示例:

md5("abc"): 900150983cd24fb0d6963f7d28e17f72
md5("not secure"): 116e54e126621ed4070b2f30ebc07fec

因此,不要将密码“不安全”存储在文件中,而是存储哈希“116e54e126621ed4070b2f30ebc07fec”。

于 2015-10-16T15:08:14.637 回答