Extra Form
PHP PHP 7.4
CMS Rhymix 2.0

이 게시판 덕분에 라이믹스 기반 앱을 잘 만들고 있습니다.

답변 달아주신 분들께 감사의 말씀을 전합니다.

(특히 기진곰님, 람보님. 두 분은 저의 영웅입니다. ^^)

 

제가 개발하는 앱은, 회원가입을 받지 않는 앱입니다.

관리자가 계정을 등록한 사용자만 사이트를 이용할 수 있습니다.

 

관리자가 계정을 등록할 때, 엑셀 파일을 업로드해서 등록하는 기능을 구현중입니다.

(계정 정보 중, member 테이블은 말 그대로 ID와 암호만 관리하고, 별도의 테이블에서 계정 정보를 관리합니다. 계정 정보도 사용자가 수정 가능한 부분과 관리자가 수정 가능한 부분이 나뉘어 있거든요.)

 

지금 생각은 엑셀 파일을 업로드 하면, 자동으로 member 테이블에 데이터가 추가되어야 합니다. (물론 별도의 회원테이블에도 데이터가 추가 되어야 하고요.)

이 때, 암호를 member 테이블에 기록해야 합니다.

 

또, 사용자가 로그인한 다음, 자신의 암호를 변경할 수 있어야 합니다.

이 때, 라이믹스 기본 회원 페이지가 아니고, 별도의 회원정보 테이블을 조회하는 화면에서 암호를 변경해야 합니다.

 

그래서 결국은 member 테이블의 암호를 제가 직접 코드로 변경하는 기능을 연구중입니다.

 

다음과 같이 암호 변경 기능을 테스트해 봤습니다.

    $oPwd = new \Rhymix\Framework\Password();
    $strNewPwd = $oPwd->hashPassword("test1234");
    echo($strNewPwd);

 

그랬더니 나온 결과가, DB에 저장된 암호 해시값과 다르게 나옵니다.

DB에 저장된 암호값: $2y$10$4eByUHcqqJxefmsqKbcH2.NEZhsp97Yh2rf/nNVbFwoxgoGCDuSqa
위 코드로 만든 암호값: $2y$10$D4lPBnUPmpiByAjn4HUqIOw7k6yCKw5Ssn1IjdEUAFH0QPMdq/taC

('DB에 저장된 암호값' 이란 'member' 테이블의 'password' 컬럼에 저장된 암호값을 말합니다.)

 

'DB에 저장된 암호값'과 '위 코드로 만든 암호값'이 동일하게 나와야 할 텐데..

어떻게 해야 합니까?

 

참고로, 라이믹스 기본 설정입니다.

'비밀번호 암호화 알고리듬'은 'bcrypt'로 되어 있고요..

'비밀번호 암호화 소요시간'은 '10'으로 되어 있습니다.

Password.hashPassword 에 '$salt' 인수가 있던데.. 이것 때문이 아닐까 하는 생각도 드네요.

 

고맙습니다.

 

  • profile

    bcrypt, pbkdf2 등 '솔트'를 사용하는 암호화 알고리즘들은

    동일한 비번이라도 암호화할 때마다 결과가 다르게 나오는 것이 정상입니다.

    해쉬값을 가지고 원래의 비번을 역추적하는 수법을 막기 위해서죠.

    어떤 값이라도 로그인만 잘 되면 그만입니다.

  • profile profile
    아, 그렇군요.
    저는 해쉬가 같아야 된다고만 생각해서 테스트 해 볼 생각도 못했었네요.
    역시 고맙습니다~