by 열정가이 [2018.08.14 02:56:46]
create table test(
test varchar(50)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
를 통해 TABLE을 생성 후 '한글' 이라는 text를 입력 후 입력된 값을 AES_ENCRYPT를 사용하여 암호화 하려고 합니다
update test T1 set T1.test = AES_ENCRYPT(
(select test from (select test from test) tmp
where tmp.test = T1.test
),SHA2("enc_key",512));
쿼리는 위와 같습니다.
그러나
ERROR 1366 (22007): Incorrect string value: '\xC3\xDD\xE2\x97\xD3\xD2...' 와 같은 에러가 발생합니다 ㅠㅠ
Character_set은 아래 사진과 같습니다!! latin1을 utf8으로 변경 후에 시도해봐도 에러가 발생하네요 ㅠ 왜그러는걸까요 ㅠㅠ
더 테스트 해 봐야 겠지만 이런 방법도 있나 보네요.
https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html
select HEX(AES_ENCRYPT('한글_쎅횾칅븦걒_ABC_abc_ハングルの_韩文', SHA2("enc_key",512))) ENCRYPT ; select cast(AES_DECRYPT(UNHEX('9CF2990C43526B735B2ECAB7A3DFBF6067EF65F7EFE96E80F44FCB7D172CDE2FB7381FEA59CC0F378EBF603778DE767637ED6B7C8FB1E1749B7EF6363A43FB61'), SHA2("enc_key",512)) AS CHAR(4000) CHARACTER SET UTF8) DECRYPT