MSSQL 서버에 사용자 PASSWORD 데이터가 'SHA2_xxx'방식으로 암호화되어 저장되있습니다.
그럼 php로 입력받은 id와 password값을 처리하기 위해서 아래와 같은 쿼리를 날려 준 후 결과값이 있으면 로그인 허용을 해주면 될 것입니다.
select * from 사용자정보
where 유저id = $id
and 비밀번호 = $password
하지만 위처럼 $password 값이 암호화 처리되지 않은 값이라면 쿼리를 아래처럼 수정해야합니다.
select * from 사용자정보
where 유저id = $id
and 비밀번호 = HASHBYTES('SHA2_256' , $password)
하지만 sql 수준의 hashbytes 함수의 return값은 binary형(0x.....)식 입니다.
만약 사용자정보 테이블의 유저id 컬럼이 binary형식으로 저장이 안 되어있는 경우라면 아래처럼 character 형태로 convert를 해줄 수도 있습니다.
select * from 사용자정보
where 유저id = $id
and 비밀번호 = CONVERT(NVARCHAR(32),HASHBYTES('SHA2_256' , $password))
아니면 php 수준에서 아래와 같이 hash()함수로 처리한 뒤에 쿼리로 넘겨주는 방법도 활용할 수 있습니다.
$password_hash = hash("sha256", $password)
'Programming > PHP' 카테고리의 다른 글
PHP & Teams Webhook 과 연동하기 (2/2) (0) | 2022.03.02 |
---|---|
PHP & Teams Webhook 과 연동하기 (1/2) (0) | 2022.03.02 |
MSSQL과 연동, 쿼리 날려보기 (PHP with MSSQL) (0) | 2022.02.24 |
[Codeigniter 기초] (2) MVC 컨트롤러와 뷰의 관계 (0) | 2022.02.23 |
[Codeigniter 기초] (1) Bootstrap template 적용을 위한 준비단계 (0) | 2022.02.23 |