검색결과 리스트
AES_DECRYPT에 해당되는 글 1건
- 2012.10.31 MySQL AES_ENCRYPT, AES_DECRYPT시 한글깨짐 문제
글
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
JSP에서 MySQL의 암호화된 값을 복호화해서 가져올 때 영문이나 숫자는 제대로 복호화 되어 표시되지만, 한글이 포함된 경우 문자열이 깨져서 나오는 경우가 발생했다.
INSERT INTO temp (username) VALUES (HEX(AES_ENCRYPT('한글', 'key')));
위의 쿼리를 이용하여 temp테이블에 암호화된 값을 저장했다면, 웹페이지에서 아래의 쿼리를 이용해 값을 불러와 웹페이지 내에 값을 표시하려고 한다.
SELECT AES_DECRYPT(UNHEX(username), 'key') FROM temp;
해당 쿼리를 toad에서 실행하면, 제대로 '한글'이라고 복호화되어 표시하지만, 웹페이지 (본인의 경우 JSP)에서 해당 쿼리를 실행하면 값이 깨져서 나타난다.
고민하여 해결한 방법은 아래와 같다.
SELECT CAST(AES_DECRYPT(UNHEX(username), 'key') AS CHAR) FROM temp;
AES_DECRYPT한 결과가 toad에서 제대로 '한글'로 표시되어 스트링으로 생각했는데, bytes로 결과를 리턴하는 것으로 보이며 이 점을 착안하여 문자열로 변환하니 toad는 물론 웹페이지에서도 제대로 표시되었다.
INSERT INTO temp (username) VALUES (HEX(AES_ENCRYPT('한글', 'key')));
위의 쿼리를 이용하여 temp테이블에 암호화된 값을 저장했다면, 웹페이지에서 아래의 쿼리를 이용해 값을 불러와 웹페이지 내에 값을 표시하려고 한다.
SELECT AES_DECRYPT(UNHEX(username), 'key') FROM temp;
해당 쿼리를 toad에서 실행하면, 제대로 '한글'이라고 복호화되어 표시하지만, 웹페이지 (본인의 경우 JSP)에서 해당 쿼리를 실행하면 값이 깨져서 나타난다.
고민하여 해결한 방법은 아래와 같다.
SELECT CAST(AES_DECRYPT(UNHEX(username), 'key') AS CHAR) FROM temp;
AES_DECRYPT한 결과가 toad에서 제대로 '한글'로 표시되어 스트링으로 생각했는데, bytes로 결과를 리턴하는 것으로 보이며 이 점을 착안하여 문자열로 변환하니 toad는 물론 웹페이지에서도 제대로 표시되었다.
'-- MySQL' 카테고리의 다른 글
MySQL DB Backup and Restore (0) | 2013.04.11 |
---|---|
MySQL에서 쿼리 시 트랜잭션 처리 (0) | 2013.04.11 |
반드시 알아야 할 MySQL 특징 세 가지 (0) | 2012.09.24 |
DBA에게 유용한 Toad의 숨은 기능 찾기 (0) | 2012.09.06 |
MySQL 튜닝 (0) | 2012.08.30 |
RECENT COMMENT