1

我使用 Apache 库作为 Linux 中两个应用程序的哈希密码。其中一个是 Pure-Ftp,另一个是我的应用程序。我在 Pure-Ftp passwd 文件中手动保存散列密码,它工作正常,用户可以使用给定用户/密码的 Ftp。
在我的应用程序中,我想验证用户,但没有任何 checkPassword(clearTextPassword, hashedPassword) 功能。

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

1 回答 1

0

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

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

}

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

于 2017-02-04T05:57:39.563 回答