sql_query = "SELECT name, barcode FROM MY_Client WHERE name = AES_ENCRYPT(%s, %s)"
cursor.execute(sql_query, ["김이름", SECRET_KEY])
파이썬에서 커서를 통해 SQL 직접 접근 쿼리문 실행 시 발생.
AES_ENCRYPT로 비교를 하려는데, 현재 암호화된 이름 컬럼으로 비교하기 위해 매개변수에 AES_ENCRYPT를 수행함. 그러자 발생..
cursor.execute(sql_query, ["김이름", SECRET_KEY])
"김이름".encode('utf-8')로 바꿔서 string이 아닌 utf-8로 바꿈..
-> Cannot convert string '.\x1B`lDA...' from binary to utf8mb4
새로운 에러 발생 -ㅁ-;;;
-> 쿼리문을 다시 봄
sql_query = "SELECT name, barcode FROM MY_Client WHERE name = AES_ENCRYPT(%s, %s)"
암호화된 결과를 추출할 때는 hex()함수로 AES_ENCRYPT된 결과를 변환해주어야 함.
SQL 쿼리를 바꾼 후..
cursor.execute(sql_query, ["김이름".encode('utf-8'), SECRET_KEY])
로 input값을 utf8 방식으로 인코딩한 후 쿼리문에 넣어주니 에러가 해결됨 ㅠㅠ
근데 사실 해결은 됬는데 왜 된건지 잘 모르겠다. AES ENCRYPT를 수행하기 위해 utf8방식으로 반드시 인코딩이 전제되어야 하는건지..