SQL 概念建模 - 密码可以是实体的 属性 吗?
SQL Conceptual Modelling - Can a password be a property of an entity?
我目前正在为一个项目制作概念模型,我的实体之一恰好是用户。它的键是用户 ID,属性包括 firstName、lastName、emailAdr 和 userName。项目实施后,用户将拥有密码,这让我想知道我是否应该将其添加为 属性... 否则会危及机密性吗?
考虑存储散列密码而不是纯文本。
要实施身份验证,您只需对用户的输入进行哈希处理并检查哈希值。
从概念上讲,您必须为用户保留密码,以便将其存储在用户实体中。
但是,正如@stepio 所指出的,当您考虑如何实现它时,保留一个散列(实际上,一个强大的安全散列)是一种很好的存储方式,这样它就不会在遭到破坏时暴露.
另一方面,例如,如果您使用从 table 实例化实体的 ORM,并且您对遍历整个应用程序的散列有一些担忧,您可以选择将真正的散列放入一个单独的 table,并在用户的 table 中保留对它的引用。类似于 Unix 影子密码。
我目前正在为一个项目制作概念模型,我的实体之一恰好是用户。它的键是用户 ID,属性包括 firstName、lastName、emailAdr 和 userName。项目实施后,用户将拥有密码,这让我想知道我是否应该将其添加为 属性... 否则会危及机密性吗?
考虑存储散列密码而不是纯文本。
要实施身份验证,您只需对用户的输入进行哈希处理并检查哈希值。
从概念上讲,您必须为用户保留密码,以便将其存储在用户实体中。
但是,正如@stepio 所指出的,当您考虑如何实现它时,保留一个散列(实际上,一个强大的安全散列)是一种很好的存储方式,这样它就不会在遭到破坏时暴露.
另一方面,例如,如果您使用从 table 实例化实体的 ORM,并且您对遍历整个应用程序的散列有一些担忧,您可以选择将真正的散列放入一个单独的 table,并在用户的 table 中保留对它的引用。类似于 Unix 影子密码。