使用mysql和python的aes cbc加密

bd1hkmkf  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(414)

我正在写一个用python存储密码的小程序。我可以用 Mysqldb 模块。我想用密码加密 AES 256 with CBC . 我正在尝试用sql来实现这一点 AES_ENCRYPT 功能。
我将cbc模式设置为: mysql> SET block_encryption_mode = 'aes-256-cbc'; 在python中,我有:

def add_password(self, table, site, password, key, iv):
        try:
            query = "INSERT INTO " +table+ " (sites, password) VALUES (AES_ENCRYPT(%s, %s, %s), AES_ENCRYPT(%s,%s,%s) )"
            self.cursor.execute(query, ( site, key, iv, password, key, iv))
            self.conn.commit()
        ...

但是,如果你运行我得到的程序: Warning: <IV> option ignored ,就好像函数使用ecb模式一样(所以没有iv)。
我哪里错了?
可能的方法:或者最好用python模块加密所有数据,并将已经加密的数据插入db中?
编辑
如果我每次都加上 SET block_encryption_mode = 'aes-256-cbc' ,全部炒菜。

def add_password(self, table, site, password, key,iv):
        try:
            query = "SET block_encryption_mode = 'aes-256-cbc'"
            self.cursor.execute(query)
            query = "INSERT INTO " +table+ " (sites, password) VALUES (AES_ENCRYPT(%s, %s, %s), AES_ENCRYPT(%s,%s,%s) )"
            self.cursor.execute(query, ( site, key,iv, password, key, iv))
            self.conn.commit()
            ...

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题