【发布时间】:2016-02-03 22:36:29
【问题描述】:
我有一张表,长这样,用来组成连接字符串(这个表大概有30条记录):
create table databases (id int not null, databaseserver varchar(30), databasename varchar(30), username varchar(30), password varchar(30), primary key (id))
我总是读到你应该在数据库中散列密码。但是,这在此处不起作用,因为必须将密码转换回文本。
我将如何处理这个问题?透明数据加密听起来像是答案。我是否能够只加密此列而无需修改任何使用该列的代码。
【问题讨论】:
-
为什么需要将密码转换回文本?如果您想将它与用户输入进行比较,只需使用与原始密码相同的密钥来比较结果。
-
@RomanCoo,因为密码是连接字符串的一部分。
-
是的,但是为什么要将它存储在数据库中? TDE 在这里帮不了你——它只是加密数据库使用的文件。
-
@Dan Field,以前的开发人员将密码存储在数据库表中,但没有加密。我想加密它们。
-
我很困惑;您将数据库连接字符串存储在数据库中;要么是鸡和蛋,要么主数据库有硬编码密码,要么使用受信任的身份验证。正如 Dan 所说,在任何地方都使用受信任的身份验证,或者退出使用数据库来存储连接字符串。
标签: sql sql-server encryption