Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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中使用SHA1对用户进行身份验证_Java_Linux_Authentication_Sha1_Pureftpd - Fatal编程技术网

如何在Java中使用SHA1对用户进行身份验证

如何在Java中使用SHA1对用户进行身份验证,java,linux,authentication,sha1,pureftpd,Java,Linux,Authentication,Sha1,Pureftpd,我在Linux中使用Apache库作为两个应用程序的哈希密码。其中一个是纯Ftp,另一个是我的应用程序。我手动将哈希密码保存在纯Ftp passwd文件中,它工作正常,用户可以使用给定的用户/密码使用Ftp。 在我的应用程序中,我想对用户进行身份验证,但没有任何checkPassword(clearTextPassword,hashedPassword)函数 import org.apache.commons.codec.digest.Crypt; ... ... ... String hash

我在Linux中使用Apache库作为两个应用程序的哈希密码。其中一个是纯Ftp,另一个是我的应用程序。我手动将哈希密码保存在纯Ftp passwd文件中,它工作正常,用户可以使用给定的用户/密码使用Ftp。
在我的应用程序中,我想对用户进行身份验证,但没有任何checkPassword(clearTextPassword,hashedPassword)函数

import org.apache.commons.codec.digest.Crypt;
...
...
...
String hashedValue = Crypt.crypt(clearTextPassword);
..

要验证密码,可以使用savedHashedPassword作为salt对给定的简单密码进行哈希:

  private static boolean checkPassword(String password, String hashedPassword) {
       String tmpHashedPassword = Crypt.crypt(password, hashedPassword);
       return hashedPassword.equalsIgnoreCase(tmpHashedPassword);
}


Crypt.Crypt(密码)使用最强的Crypt(3)算法计算摘要。使用随机salt和默认算法(当前为SHA-512)。

要验证密码,您可以将给定的简单密码与savedHashedPassword哈希为salt:

  private static boolean checkPassword(String password, String hashedPassword) {
       String tmpHashedPassword = Crypt.crypt(password, hashedPassword);
       return hashedPassword.equalsIgnoreCase(tmpHashedPassword);
}


Crypt.Crypt(密码)使用最强的Crypt(3)算法计算摘要。使用随机salt和默认算法(当前为SHA-512)。

不,您需要编写该代码。您将哈希密码存储在哪里?真的不清楚你在这里要什么。(不清楚你的密码和FTP之间有什么关系…)我个人也会避免在任何严肃的工作中使用SHA-1作为密码哈希。仅仅使用哈希函数是不够的,仅仅添加一个salt对提高安全性几乎没有什么作用。相反,使用随机盐在HMAC上迭代大约100ms,并使用散列保存盐。使用诸如
PBKDF2
(又称
Rfc2898DeriveBytes
)、
password\u hash
/
password\u verify
Bcrypt
等函数和类似函数。关键是让攻击者花费大量时间通过暴力手段查找密码。保护您的用户很重要,请使用安全的密码方法。我认为SHA1 512是安全的,不是吗?我不想使用bash函数。我想在Java中生成一个哈希密码,然后将其保存在数据库和纯Ftp的passwd文件中。您将哈希密码存储在哪里?真的不清楚你在这里要什么。(不清楚你的密码和FTP之间有什么关系…)我个人也会避免在任何严肃的工作中使用SHA-1作为密码哈希。仅仅使用哈希函数是不够的,仅仅添加一个salt对提高安全性几乎没有什么作用。相反,使用随机盐在HMAC上迭代大约100ms,并使用散列保存盐。使用诸如
PBKDF2
(又称
Rfc2898DeriveBytes
)、
password\u hash
/
password\u verify
Bcrypt
等函数和类似函数。关键是让攻击者花费大量时间通过暴力手段查找密码。保护您的用户很重要,请使用安全的密码方法。我认为SHA1 512是安全的,不是吗?我不想使用bash函数。我想在Java中生成一个哈希密码,然后将其保存在数据库和纯Ftp的passwd文件中。