我需要将数据库密码存储在配置文件中.出于显而易见的原因,我想加密它们(最好使用AES).有没有人知道Delphi实现很容易引入到现有项目中,其中包含超过10,000行的历史增长(URGH!)源代码?
澄清:简单意味着将单元添加到项目中,添加最多 5行代码,其中读取配置文件并使用它完成.不应该超过15分钟.
另一个澄清:需要密码才能创建与数据库的连接,而不是支持应用程序的用户管理方案.所以使用哈希没有帮助.db引擎检查密码是否有效,而不是应用程序.
我是对David Barton的DCPCrypt库的推荐.我在几个项目中成功地使用了它,并且在阅读了使用示例后不会超过15分钟.它使用MIT许可证,因此您可以在商业项目中自由使用它.DCPCrypt实现了许多算法,包括Rijndael,它是AES.
有许多googlable独立(单个单元)实现 - 问题是您信任哪个,除非您准备自己验证特定库的更正.
对于典型的身份验证目的,您不需要存储密码,只需要检查用户输入的密码是否正确.如果这是你的情况,那么你可以只存储一个哈希签名(例如MD5),并将其与输入密码的签名进行比较.如果两个签名匹配,则输入的密码是正确的.
存储加密密码可能很危险,因为如果有人获得您的"主"密码,他们可以检索所有用户的密码.
如果您决定使用MD5,您可以使用Delphi附带的MessageDigest_5.pas(至少它包含在我的Delphi 2007副本中).还有其他可以选择Delphi源代码的实现.
我认为Turbopower LockBox是一个优秀的伪造图书馆:
http://sourceforge.net/projects/tplockbox/
我不知道它是否对你的用途来说太大了,但它很容易使用,你可以用5行代码加密一个字符串.一切都在这些例子中.