相关疑难解决方法(0)

时间()是好盐吗?

我正在看一些我自己没有写过的代码.代码尝试使用SHA512散列密码并仅使用time()盐作为密码.是time()太简单盐这或者是这个代码安全吗?

感谢您的回答和评论.我将在此为新读者总结一下:

  • 每个用户的盐应该是不同的,所以如果2个用户同时注册,他们的盐将不是唯一的.这是一个问题,但不是一个大问题.
  • 但是盐不应该与用户有任何关系,所以time()不是好盐.
  • " 使用随机,均匀分布的高熵盐. " - 这是一口,所以什么代码可能产生random, evenly distributed, high entropy盐?

好吧,那么我用随机字符串32 char long替换time()怎么样.可以通过在一组字母表字符上循环32次来生成随机字符串.听起来不错吗?

php security passwords hash salt

56
推荐指数
1
解决办法
8209
查看次数

C#中的哈希密码?Bcrypt/PBKDF2

我查询了msdn和其他资源如何做到这一点,但我想出了没有明确的解决方案.这是我找到的最好的http://blogs.msdn.com/b/shawnfa/archive/2004/04/14/generating-a-key-from-a-password.aspx?Redirected=true

我想使用bcrypt或PBKDF2(看起来与bcrypt相关)在C#中散列密码.我想试验一下我的计算机散列密码需要多少轮.然而,一切似乎都是关于加密,而每个人都谈论哈希.我无法弄清楚.我如何哈希密码?它看起来更像PBKDF2(Rfc2898?)是一个随机数生成器,我使用GetBytes(金额)来选择我的散列大小有多大.

我糊涂了.我究竟如何用bcrypt/PBKDF哈希密码?

.net c# passwords hash bcrypt

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

使用随机盐改进密码哈希

我正在创建一个网站,我正在尝试决定如何加密用户密码以将它们存储在SQL数据库中.

我意识到使用简单的md5(密码)是非常不安全的.我正在考虑使用sha512(password.salt),我一直在研究生成有用盐的最佳方法.我阅读了很多文章,说明盐应该尽可能随机地添加熵到哈希,这看起来是个好主意.但:

  • 你需要将随机盐与哈希一起存储
  • 鉴于攻击者以某种方式访问​​了您的哈希密码(并试图将哈希值反转为纯文本),这意味着他可能会转储您的数据库,然后也可以访问您的随机盐

在数据库中哈希旁边的怪异外观值是不是很明显?如果攻击者可以使用哈希值访问salt,那么它更安全吗?

任何人都有该领域的专业知识?谢谢!

php mysql security hash sha

21
推荐指数
2
解决办法
2802
查看次数

Bcrypt用于散列或加密吗?有点混乱

我一直在阅读bcrypt(应用程序视角).考虑使用它来存储我的网站上的密码.

在我阅读的一些内容中,它提出了两种方式:

  • 例如1:Bcrypt是来自bcrypt的跨平台文件加密实用程序
  • 例如2:bcrypt是一种自适应密码散列算法,它使用Blowfish密钥调度,而不是对称加密算法.从如何安全存储密码
  • bcrypt是由Niels Provos和DavidMazières设计的密码自适应加密哈希函数,基于Blowfish密码:来自bcrypt wiki

究竟什么是Bcrypt?

security encryption hash blowfish bcrypt

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

生成MD5哈希的大小

我将使用MD5哈希来存储加密密码.密码长度可以是6到40个字符.存储加密密码所需的数据库列大小是多少.此外,如果40个字符的散列大小非常大,那么20个字符的密码需要多少散列大小?

FormsAuthentication.HashPasswordForStoringInConfigFile(stringToEncrypt, "MD5");用来生成用于存储在数据库中的哈希.

c# hash form-authentication

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

使用多种算法散列密码

使用多种算法会使密码更安全吗?(或更少?)

为了清楚起见,我不是在谈论做这样的事情:

key = Hash(Hash(salt + password))
Run Code Online (Sandbox Code Playgroud)

我在谈论使用两个独立的算法并匹配两者:

key1 = Hash1(user_salt1 + password)
key2 = Hash2(user_salt2 + password)
Run Code Online (Sandbox Code Playgroud)

然后要求两者在验证时匹配.我已经看到这被建议作为消除碰撞匹配的一种方式,但我想知道意外后果,例如创建"最薄弱的链接"场景或提供使用户数据库更容易破解的信息,因为这种方法提供的数据多于一把钥匙就可以了.例如,将信息与哈希相结合以更容易地找到它们.此外,如果真的消除了碰撞,理论上你可以强制实际密码而不仅仅是匹配的密码.事实上,你必须要彻底强制系统.

我实际上并没有计划实现这一点,但我很好奇这是否实际上是对单一标准做法的改进key = Hash(user_salt + password).

编辑:

许多好的答案,所以只是为了猜测,这应该是显而易见的回顾,但你确实通过使用两者创建了一个最薄弱的环节,因为两个算法中较弱的匹配可以尝试对抗另一个.例如,如果您使用了弱(快)MD5和PBKDF2,我先强制MD5,然后尝试我发现的任何一个匹配,所以通过让MD5(或其他)实际使情况变得更糟.即使两者都是更安全的设置(例如bcrypt + PBKDF2),你也可以将其中一个暴露给其中一个.

security hash

7
推荐指数
2
解决办法
766
查看次数

如何加密ASP.NET MVC中的URL?

我需要在ASP.NET MVC应用程序中加密URL.

我是否需要在Route Collection中的Global页面中编写代码以加密所有URL?

asp.net asp.net-mvc asp.net-mvc-2

4
推荐指数
2
解决办法
7428
查看次数