【问题标题】:How to secure a password in Delphi exe? [closed]如何保护 Delphi exe 中的密码? [关闭]
【发布时间】:2020-01-06 20:15:05
【问题描述】:

如何保护/隐藏数据库的身份验证用户名/密码(数据库在服务器 - MySQL 上)?
客户端加密看起来不是理想的解决方案,因为可以找到密钥。
我考虑将加密的用户名/密码存储在 EXE 中,以便描述将发生在服务器端,这是我找到的最佳方法。
保护身份验证信息的最佳方法是什么?如果我找到的方法很好,我该怎么做?

【问题讨论】:

  • 这取决于您使用的数据库。常见的解决方案是使用 ODBC 数据源(必须由您的安装程序创建)。如果您通过 Internet 进行通信,那么在服务器端使用数据层(通过 REST API 公开)是明智之举...
  • 数据库是MySQL,我需要用PHP在服务器@whosrdaddy上添加那个数据层吗?
  • 您可以用您喜欢的任何语言对数据层进行编程。如果你想用Delphi,好好看看Synopse Mormot Framework
  • 这是企业应用吗?
  • @whosrdaddy 谢谢你,如果你能解释一下将不胜感激,不,这不是公司应用程序

标签: delphi passwords password-protection password-encryption password-hash


【解决方案1】:

最好是切换到 n 层架构,例如定义一个 REST 服务器,并将 MySQL 密码保存在其中。

否则,您可以在客户端加密密码。如果您在可执行文件中对密码进行硬编码,则很容易找到 - 至少要对其进行加密。您可以使用简单的 Rot13xor 或类似方法,但最好使用更安全的替代方法,例如使用 Windows 密码 DPAPI 加密或类似我们的安全 CryptDataForCurrentUser() 函数。

【讨论】:

  • 我想对用户隐藏密码,密码是我管理许可的数据库
  • @Kimber:对任何应用程序进行逆向工程都很容易,找出隐藏在应用程序中的数据库凭据,然后整个数据库就会暴露出来,坏主意....
  • @Kimber 正如我所写,只需在设置文件中加密数据库密码。但这是不安全的:最好切换到 n-Tier,n>2。 :)
猜你喜欢
  • 2012-07-20
  • 1970-01-01
  • 2013-11-11
  • 2021-09-27
  • 2014-05-11
  • 1970-01-01
  • 2013-07-10
  • 2013-05-11
  • 1970-01-01
相关资源
最近更新 更多