Python MYSQL存储AES BINARY

时间:2017-12-24 06:40:56

标签: python mysql encryption

我有一个可以从python访问的MYSQL表,这个表必须保存用户名,密码和电子邮件加密。

我使用aes crypto加密名称和电子邮件。和argon2作为密码。

我的桌子位于云服务器上,是使用直接MYSQL命令创建的:

CREATE TABLE members(member SMALLINT UNIQUE PRIMARY KEY NOT NULL AUTO_INCREMENT, name BINARY(35) NOT NULL, pseudonym VARCHAR(20) NOT NULL, password BINARY(16) NOT NULL, gender CHAR(1) NOT NULL, birthday DATE NOT NULL, email BINARY(40) NOT NULL);

我遇到加密块大小的问题,其中一些是1字节,另一些是3字节,或者是我理解的。

这是我的python查询:

member_id = i_member
name = aes_encrypt('Name First second')
pseudonym = 'lala'
gender = 'm'
birthday = '2017-12-12'
email = aes_encrypt('email@email.com')
password = ph.hash("password")

self.cur.execute("INSERT IGNORE INTO members VALUES(%s,%s,%s,%s,%s,%s,%s)", (member_id, name, pseudonym, password, gender, birthday, email))
self.con.commit()

输出错误是:

[22:34:21] SQLCloudDb.py:155: Warning: (1300, "Invalid utf8 character string: 'C8CCA6'")
  member_id, name, pseudonym, password, gender, birthday, height, weight, email, ))
... Similar to password and email

如果我去我的云SQL,我可以看到插入的成员,但看起来他们已被修剪,列看起来很奇怪,也许是因为这些字节中的一些是CLRL?以下图片包含的列数多于我发布的代码。 enter image description here

感谢每一位帮助谢谢:)

0 个答案:

没有答案