Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该使用哪种密码哈希方法?_Java_Hash_Passwords_Password Protection - Fatal编程技术网

Java 我应该使用哪种密码哈希方法?

Java 我应该使用哪种密码哈希方法?,java,hash,passwords,password-protection,Java,Hash,Passwords,Password Protection,这个问题让我又开始考虑密码哈希。我目前使用bcrypt(特别是py-bcrypt)。我听说过很多关于PBKDF2和scrypt的事 我想知道的是,是否有任何“更现代”的密码散列方法我可能不知道(因为它们是新的,所以人们不会经常谈论它们),或者可能还有其他我不知道的方法 然后从那里开始,我应该用哪一个?大多数人似乎都推荐bcrypt,但我想知道这是否仅仅是因为它很旧(阅读:众所周知)。scrypt似乎更好(内存使用量可变)。我对PBKDF2了解不多 那么,如果我制定了一个用户管理方案,我应该使用哪

这个问题让我又开始考虑密码哈希。我目前使用bcrypt(特别是py-bcrypt)。我听说过很多关于PBKDF2和scrypt的事

我想知道的是,是否有任何“更现代”的密码散列方法我可能不知道(因为它们是新的,所以人们不会经常谈论它们),或者可能还有其他我不知道的方法

然后从那里开始,我应该用哪一个?大多数人似乎都推荐bcrypt,但我想知道这是否仅仅是因为它很旧(阅读:众所周知)。scrypt似乎更好(内存使用量可变)。我对PBKDF2了解不多

那么,如果我制定了一个用户管理方案,我应该使用哪一个?或者我应该使用完全不同的东西吗?

PBKDF2用于/和域缓存凭据2(也称为DCC2)。您可以更改HMAC-SHA1的迭代次数以提高安全性。这种减缓开裂过程的方法是不间断的。然而,由于它是基于SHA1,您可以称之为GPU友好攻击

bcrypt和都使用查找表。这种内存依赖性使得它对GPU不友好。然而,最新的28nm GPU架构重新启用了对内存的快速访问

现在你应该选择bcrypt或scrypt。使用依赖内存的散列是一个不错的选择,但在将来可能会发生变化。关注破解程序的GPU性能是如何提高的。他们可能会到达一个事件视界,在这个视界上,最好切换回只做GPU友好的哈希,但增加迭代次数