g5 기존 member 데이터의 mb_pw가 이런형식일때...

g5 기존 member 데이터의 mb_pw가 이런형식일때...

QA

g5 기존 member 데이터의 mb_pw가 이런형식일때...

본문

*0804C8F552D************DE9B8********41F3

이런형식으로 나와있는데 이걸 옮기려고보니 지금 5.5.12 빌더로 설치한 새 솔루션에는 거기는 sha256L12000으로 싲가해서 base64암호화 된것처럼 되어있더라구요

 

이럴경우 암호화 맞춰줄려면 어떻게 해야합니까?

고수님들 조언 좀 부탁드리겟습니다 ㅠ

이 질문에 댓글 쓰기 :

답변 3

기존의 그누보드 시스템에서 사용된 암호화 방식과 새로 설치한 그누보드 5.5.12 버전에서 사용하는 암호화 방식이 다른 경우, 사용자 비밀번호를 새 시스템으로 옮기기 위해 암호화 방식을 일치시키는 작업이 필요합니다. 기존 시스템에서 별도로 암호화 방식을 변경하지 않았다면, 기존 시스템은 MySQL의 PASSWORD() 함수를 사용한 것일 수 있으며, 새 시스템은 SHA-256 알고리즘에 기반한 해싱과 추가적인 솔트 및 반복 과정을 통해 비밀번호를 암호화합니다.

문제 해결 방법

  1. 기존 데이터의 암호화 해제 불가능: 암호화된 비밀번호는 원래 형태로 되돌릴 수 없습니다. 따라서, 기존 시스템에서 사용된 암호화 방식으로부터 직접 비밀번호를 복호화하는 것은 불가능합니다.

  2. 사용자에게 비밀번호 재설정 요청: 가장 신뢰할 수 있고 보안적으로 권장되는 방법은 새 시스템으로 이전 후 사용자에게 비밀번호를 재설정하도록 요청하는 것입니다. 이를 위해 이메일 인증 또는 SMS 인증과 같은 방법을 사용할 수 있습니다.

  3. 임시 비밀번호 설정 및 사용자 안내: 모든 사용자에게 임시 비밀번호를 설정하고, 첫 로그인 시 비밀번호 변경을 강제하는 방법도 있습니다. 이 방법은 사용자가 직접 새로운 비밀번호를 생성하도록 유도합니다.

  4. 암호화 방식 커스텀 수정: 기존 시스템의 암호화 방식을 새 시스템에서도 사용할 수 있도록 커스텀 개발하는 방법이 있지만, 이는 보안 취약점을 야기할 수 있으므로 권장되지 않습니다. 최신 암호화 방식을 사용하는 것이 보안상 가장 바람직합니다.

  5. 데이터베이스 마이그레이션 스크립트 사용: 사용자 데이터를 새 시스템으로 이전하는 과정에서, 사용자가 처음 로그인하려고 시도할 때 기존 비밀번호를 새 시스템의 암호화 방식으로 자동 변환하는 스크립트를 개발할 수 있습니다. 이 방법은 기술적으로 복잡하며, 기존 비밀번호를 검증한 후 새 암호화 방식으로 변환해야 합니다.

추가 조언

  • 보안 고려사항: 비밀번호 암호화 방식을 변경할 때는 사용자의 개인 정보 보호와 시스템의 보안을 최우선으로 고려해야 합니다. 최신 암호화 방식을 유지하고, 사용자에게 강력한 비밀번호 사용을 권장하세요.
  • 사용자 커뮤니케이션: 비밀번호 재설정이 필요한 경우, 사용자에게 이 변경 사항을 명확하게 안내하고, 이 과정이 왜 필요한지 설명하는 것이 중요합니다. 이메일, 웹사이트 공지사항, SMS 등 다양한 채널을 통해 사용자에게 안내할 수 있습니다.

새 시스템으로의 원활한 전환을 위해 사용자의 비밀번호 재설정 프로세스를 쉽고 안전하게 만드는 것이 중요합니다.

다음과 같은 방법으로 변환작업으로 하면 가능하지 않을까합니다.

참고하셔서 원하시는 형식으로 구현하시면 될 것 같습니다.


<?php
// 기존 데이터의 암호화된 비밀번호
$old_password = "*0804C8F552D************DE9B8********41F3";
// SHA256 해싱 함수 정의
function sha256_hash($input_string) {
    return hash('sha256', $input_string);
}
// 기존 데이터의 암호화된 비밀번호를 SHA256 해싱 후 Base64 인코딩하는 함수
function encrypt_password($old_password) {
    $hashed_password = sha256_hash($old_password);
    return base64_encode($hashed_password);
}
// 새로운 솔루션에 암호화된 비밀번호 생성
$new_encrypted_password = encrypt_password($old_password);
echo "새로운 솔루션에 암호화된 비밀번호: " . $new_encrypted_password;
?>

기존 저장된 패스워드는 그냥 이동시키시고...
login 하는 페이지에서 추가 설계하세요.

POST로 전송받은 passwd 값을 기준으로..

 

1. 신솔루션의 패스워드 검증확인

   -> 통과시 로그인 처리후 종료

   -> 미통과시 2번로직

2. 구형 비밀번호 로직으로 검수

  -> 통과시 해당 POST 값을 신솔루션 형태로 암호화 및 D/B저장 후 로그인 처리후 종료

  -> 미통과시 비로그인 처리후 종료

 

위와같이 구성하세요 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,671 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT