亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 MySQL 中存儲 unicode 字節的正確方法是什么?

在 MySQL 中存儲 unicode 字節的正確方法是什么?

人到中年有點甜 2023-05-16 14:53:49
我正在使用 mysql-connector,我想將一些數據存儲在 MySQL 數據庫中。我使用 PyCrypto 應用 EAS 加密,結果產生如下所示的字節字符串:encrypted_data = b'\xd5\x9e\xea \x8d\xc4\xa6P\x93>\xda\x045\xd6\xfa8'在我的數據庫中存儲的最有效方式是什么encrypted_data?一個想法是將 unicode 字節轉換為十六進制并將其存儲為VARCHAR. 雖然在那種情況下我需要兩倍的存儲空間。另一個想法是在 MySQL 中對其進行加密。雖然因為我也在 python 中使用其他加密和哈希函數,我更愿意在 python 中完成所有加密工作,這樣代碼更有條理和可讀性。
查看完整描述

1 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

無論您是使用 Python 還是 MySQL 對數據進行加密,加密后的數據都應該存儲在二進制列中。

許多加密和壓縮函數返回字符串,其結果可能包含任意字節值。如果要存儲這些結果,請使用具有 VARBINARY 或 BLOB 二進制字符串數據類型的列。這將避免因刪除尾隨空格或更改數據值而導致的字符集轉換的潛在問題,例如在使用非二進制字符串數據類型(CHAR、VARCHAR、TEXT)時可能發生的問題。

少量加密數據應存儲為varbinary,這類似于varchar.?大量加密數據應存儲blobtext.

MySQL 有加密和解密功能,但你僅限于 AES。如果您熟悉 Python 中的加密,請使用 Python。請務必將其加密為二進制數據,而不是十六進制,并將其存儲在二進制列中。這將是最有效和最安全的。


查看完整回答
反對 回復 2023-05-16
  • 1 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號