Mysql 필드를 암호화 하는 방법에 대해 설명한다.
(참고, 다음에는 테이블 암호화 하는 방법에 설명하겠습니다)
1. aes 암호화 모드 읽어올때
use testdb;
select @@block_encryption_mode
2, aes 암호화 모드 설정할 때
use testdb;
SET block_encryption_mode = 'aes-256-cbc';
SET @init_vector = RANDOM_BYTES(16);
3. 128 비트 암호화 할때
INSERT INTO gunnm (no, text) VALUES (39, HEX(AES_ENCRYPT('문자열', SHA2('My secret passphrase',512))));
4. 256 비트 암호화 할때
INSERT INTO gunnm (no, text) VALUES (39, HEX(AES_ENCRYPT('문자열', SHA2('My secret passphrase',512), @init_vector)));
5. 128 비트 복호화 할때
SELECT no, CAST(AES_DECRYPT(UNHEX(text), SHA2('My secret passphrase',512)) as char) FROM gunnm;
6. 256 비트 암호화 할때
SELECT no, CAST(AES_DECRYPT(UNHEX(text), SHA2('My secret passphrase',512),@init_vector) as char) FROM gunnm;
이와같이 하면 필드 암복호화를 수행할 수 있다.
참고) 126비트가 성능면에서 가장 훌륭하고, 충분히 안전성을 보장한다고 함(mysql 사이트 설명)
0 개의 댓글