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

标签 java linux authentication sha1 pureftpd

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

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

最佳答案

要验证密码,您可以使用 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)。

关于java - 如何在 Java 中使用 SHA1 对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42023638/

相关文章:

java - PayPal IPN 在实时返回 INVALID 并在沙盒上返回 VERIFIED

JavaScript localeCompare() 返回与 JavacompareTo() 不同的结果

java - 沿着具有附加要求的路径制作动画

linux - 如何使用find命令查找文件名的目录并删除重复项?

cordova - 即使用户使用 Ionic/Cordova 强制退出应用程序,如何保持登录状态?

java - JAX-RS 中的异常处理

Linux脚本备份数据并将文件复制到另一台服务器

objective-c - 在 objective c Linux 中编译 *.h 文件

spring - Spring Security Filter Chain 如何工作

android - 从 Android 应用程序登录 Facebook