在数据库中存储加密的用户名哈希

我正在为一个应用程序的基本用户身份验证,我没有太多的安全经验.

这就是说,我理解将数据库中的(盐化的)密码哈希作为一个blob进行盐化/存储的做法(和必要性),而不是密码(加密或不加密).我已经实现了这个.

有没有什么可以通过盐化/散列用户名和将哈希存储在数据库中,而不是纯文本(或加密)的用户名?它打击了我,这将使得使用数据库进行身份验证的用户可以访问系统更加困难.

由于使用户难以破解用户帐户的密码至关重要,因此增加确定哪些用户可行的难度也是有意义的.

编辑:有可能我使用的一些语言不是100%正确:随意纠正:-)

编辑2:我改变了我的第一点来表示盐渍哈希 – 感谢大家指出我错过了:-)

编辑3:删除了表示我加密/解密密码的措辞.我正在使用盐渍哈桑,并将其存储在数据库中 – 谢谢Scotty指出这一点.

解决方法

简答:很可能没有.

长的答案:你的情况似乎缺乏关键“我的用户名由于…而言是敏感的”,这引起了一个问题:“为什么?保护用户名解决什么具体的,可证明的问题?

没有这个问题,你所描述的是安全相关开发中的一个常见的陷阱(并且真的是整个开发):提出一些想法来保护或混淆系统的某些部分,然后搜索一个使用它的原因.与软件开发中的任何东西一样,您应该避免做出任何其他事情,除非需要明确的问题,否则只能通过使用特定工具来解决问题.

额外的提示(免费!):salt your password hashes.平原的哈希是far less secure.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...