How to hide harded coded password in Java source code
我有一个程序可以连接到一个网站并对其内容进行更改。程序先登录,有权更改内容。现在我想把程序传递给其他人,这样他们就可以运行程序来帮助我完成任务。
程序只能在我的帐户下登录,我不想传递密码。我决定像这样硬编码密码:
如何确保无法恢复密码?如果不可能的话,怎么做才能使恢复工作变得困难呢?或者什么更好的方法来解决我的问题?
How to make sure that it will be impossible to recover the password ?
号
如果无法恢复,程序也无法恢复,它将是无用的。
If it's impossible what to do to make the operation of recovering hard ?
号
是的,不要叫它密码。很简单的是,
1 |
Or what the better way for my problem ?
号
相信那些帮助你的人。为帐户提供尽可能有限的访问权限来完成工作,并定期更改密码,这样当他们能够解决问题时,他们就不会有长时间的访问权限。
如果其他人在网站上有自己的账户,那么你可以避免泄露自己的账户。将用户名和密码放在与程序分开的配置文件中-大致如下:
1 2 3 4 5 6 | Properties login = new Properties(); try (FileReader in = new FileReader("login.properties")) { login.load(in); } String username = login.getProperty("username"); String password = login.getProperty("password"); |
号
并创建一个文件
1 2 | username=your_username_here password=your_password_here |
当你给其他人程序时,只给他们程序,而不是配置文件。向他们提供使用自己的用户名和密码创建文件的说明。
通过将密码存储在一个数组中并将数组连接到一个复杂的if语句、switch语句等系统来混淆它。越复杂越好。查看https://gist.github.com/jorgaterres/442094,了解一个使用hello world进行此操作的示例。另外,不要叫它"密码"…
您可以将密码以加密格式输入并在程序中解密,但不建议在程序中使用密码。
我假设这是通过ftp发生的?我建议您制作一个登录表单,让用户填写自己的登录信息。您可以为每个用户创建一个ftp帐户或其他帐户。
不管你多么想隐藏它。它还在那里,而且还会被找到。