2017-05-11 3 views
1

2 개의 다른 사용자 유형으로 구성된 2 개의 데이터베이스 테이블이 있습니다.Laravel은 사용자 입력 일반 텍스트 암호를 외부 데이터베이스와 비교합니다. bcrypted password

사용자 및 플레이어.

플레이어는 비밀번호가 저장되는 게임 내 플러그인의 사용자 데이터가 있습니다. 사용자가 비어 있으며 Players 테이블에서 사용자 정보를 저장하기위한 것입니다.

나는 사용자 이름과 암호를 비교하고 있습니다. 문제는 웹 사이트의 사용자 입력에서 일반 텍스트 암호를 가져오고 다른 테이블에서 암호가 이미 bcry되고 Laravel bcrypt가 bcrypted 암호가 Players 테이블과 일치하지 않는다는 것입니다.

이가 로그인을 시도하는 사용자인지 확인하기 위해 암호를 비교하는 내 옵션은 무엇입니까

에서 게임 플러그인 암호 :.

$2a$10$lpVYpSJ4O6Mt03eItJeipOWR8LGHP8dgk4a09.e6BFKVoYNAgjz86

Laravel 일반 텍스트가 bcrypted :

$2y$10$yZoq3xBsfow49pL6UyGD2.5NKlmHOmfnCFc9JD5ZjDz3pf5K1XMhG 

두 암호가 동일합니다.

+0

일반적인 bcrypt를 사용하고 있습니까? 당신은 laravel에서 Hash 클래스를 사용하고 양쪽 모두에서 같은 것을 구현한다고 생각할 수 있습니다. 당신이 bcrypt를 시도하고 있다고해도, 그것은 맞습니다. –

+0

이 파일은 [link] (https://github.com/AuthMe/AuthMeReloaded/blob/master/src/main/java/fr/xephi/authme/security/crypts/BCrypt.java)입니다. 인증 플러그인을위한 소스 저장소. –

+0

여기에 사용 된 bcrypt는 laravel bcrypt와 다르므로 오류가 발생합니다. –

답변

0

내 웹 사이트에서 플러그인을 통합하는 데 도움이되는 라이브러리를 사용하여 해결책을 찾았습니다.

그 중에서도 필자는 플러그인의 설정 파일에서 약간의 구성을해야했습니다. 암호화 방법을 변경하여 Laravel 응용 프로그램 (BCrypt)의 암호화 방법과 일치시킵니다.

나중에 암호를 해독 할 필요가 없지만 해시를 비교할 것을 알았습니다.

1

일반 암호와 해시 된 암호를 비교하려면 Hash :: check() 함수를 사용해보십시오.

if (Hash::check('plain-text', $hashedPassword)) { 
    // The passwords match... 
} 
+0

Nope가 작동하지 않았습니다. bcrypted와 일반 텍스트를 비교해 보았습니다. 일치하지 않았습니다. 나는 그들이 같은 암호임을 안다. –