2017-11-20 12 views
0

나는 의 비밀번호 재설정 기능에 있습니다.토큰에서 password_reset 레코드 가져 오기

현재 이메일 입력란은 필수 항목입니다. 하지만 그 전자 메일 필드 (데이터베이스의 토큰을 사용하고 재설정 된 양식의 숨겨진 필드에 유지)를 재설정 양식에서 제거하려고합니다.

password_resets 테이블에는 email, tokencreated_at 필드와 함께 비밀번호 재설정 요청 레코드가 있습니다.

데이터베이스에서 저장된 토큰과 비교하기 위해 URL에서 가져올 토큰을 디코딩하려고합니다.

내가했는데, 내가 URL에서 얻을 것이다 토큰에

//Hash::make 
//$this->hasher->make 
//Crypt::decrypt 
//sha1 
//md5 

.

여전히 데이터베이스 테이블 password_resets에있는 토큰과 비교할 정확한 일치하는 토큰을 얻을 수 없습니다.

나는 link을 조사했습니다. 어떤 말을 하시겠습니까 암호 재설정 토큰은 sha256의 bcrypt로 저장됩니다. 하지만 어떻게 토큰을 해독해야하는지 이해할 수 없습니다.

누구에게이 문제가 발생합니까? 아이디어가 있으십니까? 제안 사항이 있으십니까?

답변

0

해시는 암호화가 아니기 때문에 해시를 해독 할 수 없습니다. 해시는 데이터 조각의 고유 한 '지문'을 만드는 데 사용됩니다. 해시에는 전체 데이터가 포함되어 있지 않으므로이를 역 분개 할 수있는 방법은 없습니다.

그러나 발급 된 경우 password_resets 테이블에 토큰이 포함되어야합니다.

SELECT * FROM password_resets WHERE token = ? 

과 같은 간단한 검색어는 이메일 주소를 반환해야합니다.

해당 테이블에 데이터가 있는지 확인하십시오.

+0

나는 그것을 해독 할 수 없다는 것에 동의하지만 가지고있는 토큰에서 하나를 만들 수 있습니다. 데이터베이스에 저장되어있는 ditto token string을 생성하기 위해서는이 알고리즘이 필요합니다. – rahulsm