본문 바로가기

프로그램 개발 참고사항/MySQL

[MySQL@패스워드 암호화] password() 함수

안녕하세요

뭉게뭉게 의 MySQL 개발 참고 카테고리입니다.

 

요즘 소스개발을 할 때 보통 java, php 등 소스안에서 패스워드 암호화 방식이 제공도 많이 되고, 안전하게 잘 되어지고 있는데요, 혹시 간단하게 MySQL DB 안에서 패스워드 암호화를 필요로 한 분이 있을까봐 password() 함수를 소개해드려 합니다.

 

password() 함수는 MySQL에서 제공되는 함수인데요.

간단한 예제를 확인해 볼까요?

 

MySQL password() 함수 예제

다음과 같이 MySQL에서

select 123, password(123)

두 값의 차이를 비교하고자 합니다.

 

결과 : 123, *23AE809DDACAF96AF0FD78ED04B6A265E05AA257

 

이렇게 값이 차이 나는 것을 볼 수 있습니다.

password() 함수는 비대칭암호화 방식이기 때문에

데이터 암호화는 가능하지만, 데이터 복호화는 불가능합니다.

 

그래서 보통 로그인 경우 패스워드를 암호화 하여 DB에 저장한 후

사용자가 입력한 데이터를 암호화하여 DB에 저장된 암호화된 데이터와 비교를 합니다.

 

예) 로그인 할 경우 아이디 AAA, 패스워드 A1234 를 입력했다.

DB에 저장되어 있는 패스워드가 password()함수를 통해 암호화 되어 있다면,

SELECT *

 FROM 테이블명

WHERE ID = 'AAA', PASSWORD = password('A1234') ;

 

이런식으로 사용하시면 됩니다. ^^

감사합니다.