相关疑难解决方法(0)

在数据库中存储密码的首选方法

在数据库中存储密码的首选方法/数据类型是什么(最好是SQL Server 2005).我在几个应用程序中一直使用的方法是首先使用.NET加密库,然后将它们作为二进制文件存储在数据库中(16).这是首选方法还是我应该使用不同的数据类型或分配比16更多的空间?

database sql-server security encryption passwords

76
推荐指数
5
解决办法
1万
查看次数

如何正确存储密码*?

我在SO中偶然发现的一篇文章提供了与其他文章的链接,这些文章反过来提供了更多 文章的链接等.

最后我完全被遗忘了 - 那么在DB中存储密码的最佳方法是什么?从我可以放在一起你应该:

  • 使用长(至少128个完全随机位)盐,它以密码旁边的明文存储;
  • 在salted密码上使用SHA-256的几次迭代(甚至更高的SHA级别).

但是......我读到的关于密码学的内容越多,我就越了解我并不真正理解任何东西,而且我多年来认为真实的东西实际上是错误的.这里有专家吗?

补充:似乎有些人忽视了这一点.我重复上面给出的最后一个链接.这应该澄清我的担忧.

https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2007/july/enough-with-the-rainbow-tables-what-you-need-to-know-about-安全密码的方案/

security passwords hash cryptography

18
推荐指数
1
解决办法
2461
查看次数

安全密码哈希

我需要在.Net WinForms应用程序中存储单个密码的哈希值.

什么是最安全的方法?

特别是:

  • 盐,HMAC,还是两者兼而有之?
  • 盐多少钱?
  • 多少次迭代?
  • 什么编码?(密码是纯ASCII)

我假设算法应该是SHA512或HMACSHA512.

.net security passwords hash

17
推荐指数
3
解决办法
7580
查看次数

存储哈希密码 - base64,或十六进制字符串,还是其他什么?

我使用.NET System.Security.Cryptography类散列密码.它有一些散列算法,例如MD5,SHA1,SHA256,SHA384,SHA512

结果散列值是一个字节数组.我应该将它转换为十六进制字符串进行存储,或Convert.ToBase64String(),还是其他东西?(我喜欢Base64,因为它比Hex短).

顺便提一下,有很多哈希算法可供选择,我随机选择了SHA384,但有哪一个"更好"或适合这项任务?

请评论.

阅读前八条评论后更新:
通过答案和我已经完成的进一步阅读,似乎MD5,SHA1或多或少相当(SHA1稍微更安全).SHA256,384,512在递增顺序时提供更好的安全性.

由于我不需要fort-knox(这是一个没有网址,浏览器,互联网,内联网或外联网的内部企业系统),我将绕过"腌制"业务 - 我想如果有人可以窃取密码表,他们也可以窃取其他表中的实际数据.

但我将保留"盐"概念以供将来参考; 不确定在散列之前是否应该在密码附加(最后)或预先(在前面)附加盐,它会产生影响吗?此外我还在考虑使用密码本身的前几个字符作为盐,以避免额外的字段来存储它,但我想它不够长 - 并且盐应该足够长.

共识认为base64转换是存储和比较的合理选择.鉴于最大密码长度为15个字符,我仍然需要弄清楚哈希存储需要的最大数据库列长度是多少.也许Varchar(64)?

谢谢大家的贡献.

hash base64

16
推荐指数
2
解决办法
2万
查看次数

MD5的安全性是否低于SHA等.人.在实际意义上?

我在SO上看到 一些 问题答案,表明MD5不像SHA这样安全.

我的问题是,这在我的情况下值得担心吗?

这是我如何使用它的一个例子:

  1. 在客户端,我通过附加当前时间和密码然后使用MD5对其进行散列来为消息提供"安全"校验和.所以:MD5(message+time+password).
  2. 在服务器端,我正在使用我发送的时间和客户端密码的知识来检查此哈希.

在这个例子中,我真的更喜欢使用SHA而不是MD5吗?

在什么情况下,散列函数的选择在实际意义上真的很重要?

编辑:

只是为了澄清一下 - 在我的例子中,移植到SHA算法有什么好处吗?

换句话说,在这个例子中,有人在不知道共享密码的情况下发送消息和正确的哈希是否可行?

更多编辑:

为重复编辑道歉 - 我不清楚我在问什么.

security hash md5 sha

9
推荐指数
4
解决办法
1万
查看次数

密码哈希和腌制 - 这是一个很好的方法吗?

我正在做一些研究或谷歌搜索处理密码散列和盐析的不同方法,并遇到了这个有趣的链接:

http://phix.me/salt/

现在,基本上建议的是创建两个用户函数,一个用于散列,另一个用于检查散列.

盐是伪随机的,但实际上是基于密码(让我感觉不好?).

散列函数也伪随机地"散布"哈希字符串中的盐.

哈希检查功能反转盐洒,然后进行实际的哈希检查.

现在,我知道每个密码哈希的唯一salt =好,但是具有散列密码并创建存储在db函数中的salt的逻辑可能=坏.

我喜欢盐不明显的想法,它也不需要基于一些有希望的一致性值,如用户名,用户ID,出生日期等,但正如我所说,我确实对实现有疑问.

那么,人们对"最佳方法解决方案"的看法和想法是什么?

mysql encryption passwords hash salt

7
推荐指数
3
解决办法
6037
查看次数

密码处理最佳做法?

我们有许多网络服务和网络应用程序以不同方式对用户进行身份验证,其中一些具有不同的密码要求,原因非常糟糕.例如,一个系统拒绝$签名,直到有人"修复"某些Perl脚本中的字符串处理.另一个系统似乎解析@密码中的标志.另一个系统向用户发出密码,开发人员很自豪地告诉我这是用户名的可逆转换.

我知道密码哈希是首选; 但我想知道在向基于浏览器的软件过渡中必须牺牲多少.对于我自己的启发,并提出改变的案例,是否有关于密码处理和管理主题的权威参考,我可以在我的部门和那些负责其他服务的人员中展示?

encryption passwords

6
推荐指数
2
解决办法
4937
查看次数

安全地哈希密码 - 这么多冲突的建议!

我正在阅读有关如何安全地存储密码的相互矛盾的建议.我所知道的不是使用MD5!我见过人们主张使用PHP的bcrypt功能,这看起来好像它会占用服务器的处理器.我见过盐的倡导者,并主张不使用盐.

这一切都是如此不清楚.关于如何安全地存储密码,是否有真实可信的建议?

编辑:经过大量研究后,我发现了一篇文章;登录:深入讨论该主题:http://www.usenix.org/publications/login/2004-06/pdfs/alexander.pdf

php passwords hash md5 salt

6
推荐指数
1
解决办法
1253
查看次数

最好的通用消化功能?

在2009年编写一个普通的新应用程序时,在安全性和性能方面,最合理的摘要功能是什么?(当条件发生变化时,我怎样才能在将来确定这一点?)

类似 的问题 提出之前,答案已包括SHA1,SHA2,SHA-256,SHA-512,MD5,bCrypt和河豚.

我意识到,在很大程度上,任何一个都可以工作,如果智能地使用,但我宁愿不掷骰子并随机选择一个.谢谢.

security hash digest

2
推荐指数
1
解决办法
689
查看次数

标签 统计

hash ×7

passwords ×6

security ×5

encryption ×3

md5 ×2

salt ×2

.net ×1

base64 ×1

cryptography ×1

database ×1

digest ×1

mysql ×1

php ×1

sha ×1

sql-server ×1