我正在为一个应用程序的基本用户身份验证,我没有太多的安全经验.
这就是说,我理解将数据库中的(盐化的)密码哈希作为一个blob进行盐化/存储的做法(和必要性),而不是密码(加密或不加密).我已经实现了这个.
有没有什么可以通过盐化/散列用户名和将哈希存储在数据库中,而不是纯文本(或加密)的用户名?它打击了我,这将使得使用数据库进行身份验证的用户可以访问系统更加困难.
由于使用户难以破解用户帐户的密码至关重要,因此增加确定哪些用户可行的难度也是有意义的.
编辑:有可能我使用的一些语言不是100%正确:随意纠正:-)
编辑2:我改变了我的第一点来表示盐渍哈希 – 感谢大家指出我错过了:-)
解决方法
简答:很可能没有.
长的答案:你的情况似乎缺乏关键“我的用户名由于…而言是敏感的”,这引起了一个问题:“为什么?保护用户名将解决什么具体的,可证明的问题?
没有这个问题,你所描述的是安全相关开发中的一个常见的陷阱(并且真的是整个开发):提出一些想法来保护或混淆系统的某些部分,然后搜索一个使用它的原因.与软件开发中的任何东西一样,您应该避免做出任何其他事情,除非需要明确的问题,否则只能通过使用特定工具来解决问题.
额外的提示(免费!):salt your password hashes.平原的哈希是far less secure.