2015-10-05 2 views
2

Мне нужно преобразовать свой хэш-пароль в строку.Как я могу декодировать хеш-значение в laravel 5?

вот мой код.

<?php namespace App\Http\Controllers; 
    use DB; 
    use Auth; 
    use Input; 
    use Session; 
    use Route; 
    use Crypt; 
    use Redirect; 
    use Illuminate\Http\Request; 
    use Illuminate\Http\Dispatcher; 

     $userdata = array(
       'email'  => $email, 
       'password' => Crypt::decrypt($password) 
      ); 

Когда я использую Crypt :: decrypt, я получаю ошибку. error-

DecryptException in BaseEncrypter.php line 45: 
The payload is invalid. 

Может ли один предложить мне, как я могу это сделать?

Спасибо.

+0

Вы используете Crypt :: encrypt для шифрования? –

+3

Crypto хеши являются однонаправленными функциями, поскольку при хеше практически невозможно вернуть исходный текст. Подробнее см. Здесь: https://en.wikipedia.org/wiki/Cryptographic_hash_function – Ermir

+1

Строка пароля ДОЛЖНА НЕ ПОДЛЕЖАТЬ! В противном случае это так же, как сохранение пароля в текстовом виде. – Justinas

ответ

6

Использование Crypt::decrypt()

$value = Crypt::decrypt($encrypted); 

Примечание: Вы должны расшифровать значение с тем же ключом, используемым для шифрования его.

Процедуры шифрования Laravel используют Config::get('app.key') для шифрования. Это происходит внутри страны. Поскольку это значение отличается для каждого приложения Laravel, приложение, которое шифрует значение, также должно расшифровать значение.

Или ...

Приложение должно вызвать Crypt::setKey() до decrypting в соответствии с ключом к значению, используемому для шифрования. См. Установка ключа шифрования.

Для использования шифрования

Crypt::setKey($key); 

Этот ключ будет использоваться для последующих Crypt::encrypt() и Crypt::decrypt() вызовов.

+0

Спасибо Abdulla Можно использовать Crypt :: decrypt(); потому что я получил ошибку, когда я использовал это. – aniruddh

+0

Так что вам нужно ** Шифровать значение ** –

+0

Итак, я должен сначала преобразовать значение Hash в значение Шифрование или всегда хранить пароль с помощью значения Шифрование, а также использовать функцию Decrypt(). – aniruddh