2017-12-26 10 views
0

Crypto.Cipher AES를 사용하여 일부 사용자 데이터 (암호 없음)를 암호화하고 있습니다.AESCipher 객체를 mySQL에 저장하십시오.

반환 양식의 AESCipher입니다 :

b'o \ XAB \ XDD \ X19 \ xaat \ xfcIAN \ XD2 \ x00부터 \ xe9 '

는 때때로 공백을 생산하고 16 진수 표현이 아닙니다.

B "의 N %? \ X91 \ xe8'J \ xc0 \ X10의 P"

b'QV8> K \ xd8 \ XFA \ x9a \ X05 % \ xe8LJp \ xd0gf '

내가 같이 생성 된 SQL 테이블에 이러한 값을 삽입하려고 :

data_encrypted VARBINARY(40) 

내가 얻을 다음과 같은 경고 :

Warning: (1300, "Invalid utf8 character string: 'ABDD19'") 

테이블에 삽입 된 행을 쿼리 할 때 행이 효과적으로 삽입되었지만 b'o \ xab \ xdd \ x19 \ xaat \ xfcIAN \에서 배열의 첫 번째 바이트 만 이진 배열을 잘라내는 것처럼 보입니다. xd2 \ x00 \ xe9 '는'o '만 삽입합니다.

형식으로 다른 것을 지정해야합니까? _binary 추가

감사

답변

0

경고 self.cur.execute ("(멤버 값으로 % s을 (를) 무시 INSERT를 해결, _binary %의 ...

그리고 나는 또한 배열을 포맷하고있어 16 진수로 표현하려면 MySQL 테이블에서 더 잘 보이고 복호화는 여전히 작동합니다. ok binascii.b2a_hex

+0

또한 16 진수로 표현되도록 배열을 포맷하고 있습니다. mysql 테이블에서 더 잘 보이고 암호 해독은 여전히 ​​유효합니다. – EinSoldiatGott

관련 문제