【发布时间】:2011-12-17 22:12:38
【问题描述】:
假设您有一个充满秘密信息的数据库,例如用户名 + 密码列表。
如果您想使用 AES-128 等算法加密此数据库,您将如何加密数据?
仅加密机密信息字段,例如密码。保持用户名不变。输出可能是:“mike@example.org/AES_ENCRYPTED_PASSWORD;linda@example.org/AES_ENCRYPTED_PASSWORD”
加密整个数据库,输出为:“AES_ENCRYPTED_DATA”
我在想的问题:可能数据是以XML格式保存的。因此,可能的攻击者可以使用蛮力尝试随机密码,直到他在加密数据中找到 XML 元素。所以它比第一种方法更容易破解。对吧?
或者将我的数据暂时保存为 XML 格式,然后使用 AES 加密整个 XML 文件是否安全?
【问题讨论】:
-
我不会将 XML 文件称为数据库。但您首先应该考虑您希望如何存储和使用此数据库,以及为什么(对谁)希望它首先受到保护。
-
您想要加密还是散列?它们是两种截然不同的东西。到目前为止的答案是假设您真的想要散列 - 如果目的是存储用户的密码以便您可以验证他们的登录尝试,这是有道理的。但是,如果您正在创建一个系统来存储您自己的密码以便您可以检索它们(例如PasswordSafe),那么散列对您没有好处;你需要使用加密。你想做什么? (无论如何,使用一些现有的软件可能比使用自己的软件更好。)
-
是的,我知道区别。我真的想要加密。你是对的,我正在考虑像 PasswordSafe 这样的东西。所以我想创建一个密码存储系统。但是为什么我应该更好地使用一些现有的软件呢?我认为自己创建一个是一个很好的挑战,我可以学到很多关于编程安全性的知识,对吧?
标签: security encryption passwords aes