Java如何使用PasswordEncryptor验证用户的密码?

您将创建的每个应用程序都可能需要身份验证过程。该认证过程将至少包含检查用户的登录名和密码的过程。为了使系统可靠地使用密码,我们通常以加密形式存储密码。

将BasicPasswordEncryptor它实现了PasswordEncryptor接口,提供了一个BasicPasswordEncryptor.encryptPassword(String password)用于加密用户密码的方法。要检查用户密码是否正确,我们使用该BasicPasswordEncryptor.checkPassword(String plainText, String encryptedPassword)方法。

package org.nhooo.example.jasypt;

import org.jasypt.util.password.BasicPasswordEncryptor;
import org.jasypt.util.password.PasswordEncryptor;

public class PasswordEncryptorDemo {
    public static void main(String[] args) {
        // 创建BasicPasswordEncryptor的实例。
        PasswordEncryptor encryptor = new BasicPasswordEncryptor();

        // 用户密码的加密版本。
        String encrypted = encryptor.encryptPassword("secret");
        System.out.println("encrypted = " + encrypted);

        // 将用户的纯文本密码与加密的密码进行比较以进行检查
        // 如果它们匹配。
        if (encryptor.checkPassword("secret", encrypted)) {
            System.out.println("Welcome to Jasypt");
        } else {
            System.out.println("Invalid secret word, access denied!");
        }
    }
}