Section 01GoalMy-sql 내에서 사용한 Ciper_info 테이블 구조데이터 암호화 복호화를 위한 ciper_info의 테이블 구조는 위와 같다. My-sql 출력 결과복호화 코드
AES 암복호화 정리
AES_DECRYPT( 위 기능은 공식 AES(Advanced Encryption Standard) 알고리즘을 사용하여 이 버전에서 AES_DECRYPT AES_DECRYPT()를 사용하는 AES_DECRYPT()은 문 기반 복제에 안전하지 않으므로 쿼리 캐시에 저장할 수 없습니다. AES_ENCRYPT( 정리
str 및 crypt_str 인수는 길이가 될 수 있고 padding은 str 에 자동으로 추가되므로 AES와 같은 블록 기반 알고리즘에서 필요한만큼 블록의 배수가됩니다. 이 패딩은 AES_DECRYPT AES_DECRYPT() 함수로 자동 제거됩니다. crypt_str 의 길이는 다음 공식을 사용하여 crypt_str 수 있습니다.
128 비트의 키 길이의 경우, key_str 인수에 키를 전달하는 가장 안전한 방법은 진정한 랜덤 128 비트 값을 생성하여 이진 값으로 전달하는 것입니다.
패스프레이즈(Passphrase)란?
이를테면, crypt_str에 패스워드 나 패스워드를 직접 건네주지 말고 해쉬하십시오. 이 문서의 이전 버전에서는 AES_DECRYPT() 가 유효하지 않은 데이터 또는 잘못된 패딩을 감지하면 NULL 반환 NULL. MySQL 5.6.17부터, AES_ENCRYPT() 와 AES_DECRYPT() 는 블록 암호화 모드의 제어를 허용하고
◾ 기본값은 aes-128-ecb ecb이며 키 길이 128 비트 및 ECB 모드를 사용하여 암호화를
나타냅니다. MySQL 시스템 변수란?
◾ 선택적 선택적 init_vector 를 필요로하지 않는 모드의 경우, 무시되고 지정되면 경고가 생성됩니다. RANDOM_BYTES(16) 를 호출하여 초기화 벡터에 사용할 임의의 바이트 문자열을 생성 할 수 있습니다. 초기화 벡터가 필요한 암호화 모드의 경우 암호화 및 암호 해독에 동일한 벡터를 사용해야합니다. |