Я сделал функцию, которая шифрует пароль, как я могу восстановить его, чтобы я мог получить реальный пароль после того, как он был зашифрован - PullRequest
0 голосов
/ 24 февраля 2020

Это мой код для шифрования, и мне нужно отменить эту функцию:

public String encryptPassword(String input) {
    String encPass = null;
    if (input == null) return null;

    try {
        MessageDigest digest = MessageDigest.getInstance("MD5");
        digest.update(input.getBytes(), 0, input.length());
        encPass = new BigInteger(1, digest.digest()).toString(16);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return encPass;
}

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Вы хешировали пароль, а не зашифровали его. Хеши спроектированы так, чтобы быть необратимыми, поэтому вы не сможете восстановить оригинальный пароль из ха sh. Что вы делаете, это берете пароль, который вводит пользователь, и MD5 га sh, затем сравниваете хэши. Если они совпадают, то пользователь ввел правильный пароль. Если они не совпадают, то пользователь ввел неправильный пароль.

Возможно, вы захотите посмотреть добавление соли , прежде чем иметь sh пароли для дополнительной безопасности. Хотя это означает, что вам придется хранить соль для каждого пользователя, а также его хешированный пароль.

1 голос
/ 24 февраля 2020

Алгоритм MD5 Ha sh необратим, поэтому дешифрование MD5 невозможно. Некоторые веб-сайты могут предлагать расшифровку, но они являются грязным взломом, поскольку они хранят и сопоставляют с большим набором паролей MD5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...