회원DB 일괄입력시 비밀번호 암호화 문의 드립니다.
본문
사이트를 새로 만들어서 기존 회원 데이터를 가져오려는데,
초기비번을 전화번호로 설정해 달라고 합니다.
전화번호 DB는 엑셀로 받았지만 이걸 password 필드에 그대로 입력하면
실제로는 로그인이 안되어서요.
전화번호 필드에는 G5 패스워드 형식으로 암호화된 값으로 변환해서 넣어야 할 것 같은데요.
일반텍스트 => G5 패스워드 암호화 데이터값 으로 일괄로 변환하는 방법이 있을까요?
답변 3
다음과 같은 방법으로 해 보실 수 있을 것 같습니다.
1. php를 사용하여 변환스크립트 작성
$phone_number = '사용자 전화번호'; // 엑셀에서 가져온 전화번호
$hashed_password = password_hash($phone_number, PASSWORD_DEFAULT);
// $hashed_password를 데이터베이스의 password 필드에 저장합니다.
2. 기존데이터베이스에 저장 및 로그인 프로세스 수정
$entered_phone_number = '사용자가 입력한 전화번호';
$stored_hashed_password = '데이터베이스에서 가져온 암호화된 비밀번호';
if (password_verify($entered_phone_number, $stored_hashed_password)) {
// 로그인 성공
} else {
// 로그인 실패
}
이와같이 작업을 수행하면 사용자 비밀번호를 G5 패스워드 형식으로 암호화하고 저장할 수 있지만, 비밀번호를 변경하거나 보안 정책을 적용하는 경우에는 더 많은 고려사항이 필요할 수 있습니다.
참고하셔서 원하시는 형식으로 구현을 하시면 될 것 같습니다.
!-->!-->/bbs/register_form_update.php 파일 참조하셔서
mb_password = '".get_encrypt_string($mb_password)."',
암호화 해서 저장해야합니다.
if ($w == '') {
$sql = " insert into {$g5['member_table']}
set mb_id = '{$mb_id}',
mb_password = '".get_encrypt_string($mb_password)."',
mb_name = '{$mb_name}',
mb_nick = '{$mb_nick}',
mb_nick_date = '".G5_TIME_YMD."',
mb_email = '{$mb_email}',
mb_homepage = '{$mb_homepage}',
mb_tel = '{$mb_tel}',
mb_zip1 = '{$mb_zip1}',
mb_zip2 = '{$mb_zip2}',
mb_addr1 = '{$mb_addr1}',
mb_addr2 = '{$mb_addr2}',
mb_addr3 = '{$mb_addr3}',
mb_addr_jibeon = '{$mb_addr_jibeon}',
mb_signature = '{$mb_signature}',
mb_profile = '{$mb_profile}',
mb_today_login = '".G5_TIME_YMDHIS."',
mb_datetime = '".G5_TIME_YMDHIS."',
mb_ip = '{$_SERVER['REMOTE_ADDR']}',
mb_level = '{$config['cf_register_level']}',
mb_recommend = '{$mb_recommend}',
mb_login_ip = '{$_SERVER['REMOTE_ADDR']}',
mb_mailling = '{$mb_mailling}',
mb_sms = '{$mb_sms}',
mb_open = '{$mb_open}',
mb_open_date = '".G5_TIME_YMD."',
mb_1 = '{$mb_1}',
mb_2 = '{$mb_2}',
mb_3 = '{$mb_3}',
mb_4 = '{$mb_4}',
mb_5 = '{$mb_5}',
mb_6 = '{$mb_6}',
mb_7 = '{$mb_7}',
mb_8 = '{$mb_8}',
mb_9 = '{$mb_9}',
mb_10 = '{$mb_10}'
{$sql_certify} ";
// 이메일 인증을 사용하지 않는다면 이메일 인증시간을 바로 넣는다
if (!$config['cf_use_email_certify'])
$sql .= " , mb_email_certify = '".G5_TIME_YMDHIS."' ";
sql_query($sql);
전화번호 DB는 엑셀로 받았지만 <== 전화번호를 회원 테이블에 등록하는 코드는 만들었나요?
액셀자료가 어떤 정보들을 가지고 있는지 설명이 없고 update하는 코드도 모르니 실제적인 답변이 안됩니다
답변을 작성하시기 전에 로그인 해주세요.