안녕하세요
뭉게뭉게 의 MySQL 개발 참고 카테고리입니다.
요즘 소스개발을 할 때 보통 java, php 등 소스안에서 패스워드 암호화 방식이 제공도 많이 되고, 안전하게 잘 되어지고 있는데요, 혹시 간단하게 MySQL DB 안에서 패스워드 암호화를 필요로 한 분이 있을까봐 password() 함수를 소개해드려 합니다.
password() 함수는 MySQL에서 제공되는 함수인데요.
간단한 예제를 확인해 볼까요?
다음과 같이 MySQL에서
select 123, password(123)
두 값의 차이를 비교하고자 합니다.
결과 : 123, *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
이렇게 값이 차이 나는 것을 볼 수 있습니다.
password() 함수는 비대칭암호화 방식이기 때문에
데이터 암호화는 가능하지만, 데이터 복호화는 불가능합니다.
그래서 보통 로그인 경우 패스워드를 암호화 하여 DB에 저장한 후
사용자가 입력한 데이터를 암호화하여 DB에 저장된 암호화된 데이터와 비교를 합니다.
예) 로그인 할 경우 아이디 AAA, 패스워드 A1234 를 입력했다.
DB에 저장되어 있는 패스워드가 password()함수를 통해 암호화 되어 있다면,
SELECT *
FROM 테이블명
WHERE ID = 'AAA', PASSWORD = password('A1234') ;
이런식으로 사용하시면 됩니다. ^^
감사합니다.
'프로그램 개발 참고사항 > MySQL' 카테고리의 다른 글
[MySQL] MySQL에서 null값을 대체하는 함수 IFNULL() - nvl (0) | 2019.10.17 |
---|---|
[MySQL] MySQL에서 MS-SQL에서 사용하는 top과 같은 역할하는 함수 LIMIT (0) | 2019.09.17 |