0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

در یک برنامه جاوا، پسورد های کاربران با استفاده از الگوریتم MD5 بصورت hash شده در دیتابیس ذخیره می شوند. چگونه می توانم پسورد وارد شده توسط کاربر را با پسورد hash شده در دیتابیس مقایسه کنم تا مطمئن شوم کاربر پسورد را درست وارد کرده است؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

با استفاده از کلاس MessageDigest در جاوا می توان این کار را انجام داد:

    public static void main(String[] args) throws UnsupportedEncodingException, NoSuchAlgorithmException {
        String md5Password = "0cc175b9c0f1b6a831c399e269772661";
        String password = "a";
        checkMD5Pass(md5Password, password);
    }

    private static void checkMD5Pass(String md5Password, String password) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.reset();
        md.update(password.getBytes());
        byte s[] = md.digest();
        String result = "";
        for (int i = 0; i < s.length; i++) {
            result += Integer.toHexString((0x000000ff & s[i]) | 0xffffff00).substring(6);
        }
        System.out.println(result.equals(md5Password));
    }

سوالات مشابه

+3 امتیاز
1 پاسخ 1.2هزار بازدید
سوال شده 11 سال قبل در کامپیوتر و اینترنت توسط kashi (7.2هزار امتیاز)
0 امتیاز
1 پاسخ 1.1هزار بازدید
0 امتیاز
2 پاسخ 3.2هزار بازدید
0 امتیاز
1 پاسخ 2.1هزار بازدید
0 امتیاز
2 پاسخ 836 بازدید
0 امتیاز
2 پاسخ 2.0هزار بازدید
...