是否可以在除ECB之外的模式(如CBC)中使用MySQL的AES_ENCRYPT和AES_DECRYPT函數?關於Stack Overflow的各種問題討論了MySQL如何使用ECB模式並且不使用這些函數。我最好在使用我正在使用的編程語言中進行加密/解密嗎?在另一種模式下使用AES_ENCRYPT
回答
更新14年4月28日:
它看起來像MySQL 5.7.4支持更大的密鑰大小和不同的操作模式。這也回到了5.6.17。密鑰大小現在可以是128,192或256.如果基礎庫是OpenSSL,則模式可以是ECB,CBC,CFB1,CFB8,CFB128或OFB。 yassl只允許ECB或CBC。
看到這裏http://mysqlserverteam.com/understand-and-satisfy-your-aes-encryption-needs-with-5-6-17/
這裏http://mysqlserverteam.com/the-mysql-5-7-4-milestone-release-is-available/
這裏http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_block_encryption_mode
這裏https://twitter.com/morgo/statuses/459820794731065344(morgo是一個MySQL的社區經理在甲骨文)
不,這對於SQL查找會有問題。 ECB模式對於數據庫非常有用,因爲它沒有IV,並且因爲存在1:1密文:明文關係。
select * from users where secret=aes_encrypt("some secret")
如果在CBC模式中使用的IV,你將不得不每條記錄遍歷。這就是選擇ECB模式的原因。儘管流行的觀點ECB模式並不總是一個問題,並且CBC模式通常可能引入使用解密預言器的CBC-R攻擊的可能性。
沒有,直到最近一般可用版本的MySQL(5.6版),只有ECB模式是可能的AES_ENCRYPT和AES_DECRYPT。不推薦用於在加密協議使用
ECB模式,因爲當相同的明文塊進行加密可以預測的密文塊。 (參見下面的鏈接以獲取更多的細節。) http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29
與此相反,由於每個明文塊與前一密文塊進行異或CBC提供安全密碼變換。上圖中,指出了CBC-R攻擊,但這是一種旁路攻擊,並不是操作模式本身的弱點。 CFB是CBC的近親,也被證明是一種安全的操作模式。
魯克曾考慮性能上應用的操作模式的一個主要因素,但我覺得在操作模式提供的實際保護是任何人要考慮的最重要因素。
最近,我發現一個免費的MySQL加密解決方案,提供了許多算法和各種操作模式,如CBC和CFB。名字是MyDiamo。 也許你可以試試看。
隨着MySQL的5。6,你甚至可以設置會話加密:
SET @@session.block_encryption_mode = 'aes-256-cbc';
然後,您可以更新爲加密的列:
UPDATE TABLE SET COLUMN = AES_ENCRYPT(MSISDN, 'password', 'encryptionkey');
要解密:
SELECT CAST(aes_decrypt(COLUMN,'password','encryptionkey') AS CHAR) AS 'Encrypted COLUMN' FROM TABLE
記住這個加密密鑰必須有16個字符。
- 1. 將數據從一種模式發送到另一種模式
- 2. 從一種模式到另一種模式的工具?
- 3. 用戶註冊 - 另一種模式
- 4. 如何讓CCCrypt在另一種模式下計算AES?
- 5. 在Zend框架中使用另一種模式
- 6. 如何在Emacs中使用另一種模式時保持cpp模式縮進?
- 7. 使用Alpacajs從一種形式導航到另一種形式
- 8. 從另一種形式調用工具到另一種形式?
- 9. iPhone - 用另一種模式查看模式查看
- 10. 存在另一種模式來取代java中的DTO模式?
- 11. 如何在另一種模式內grep的特定模式
- 12. 以下場景使用哪種模式?
- 13. 哪種模式下使用對位圖
- 14. 有沒有辦法在另一種主要模式下使用組織模式TODO設置?例如降價?
- 15. 我如何引用一個模型使用AWS API網關另一種模式
- 16. 使用另一種形式下的表單與分離按鈕
- 17. 使用另一種形式的控件
- 18. 表 - 用另一種形式
- 19. 測試一個模式「belongs_to的」另一種模式
- 20. 另一種形式
- 21. 使用公共void從一種形式到另一種
- 22. 使用PHP從一種日期格式轉換爲另一種
- 23. Django模塊:用於製造另一種模式
- 24. OOP模式將一種數據格式轉換爲另一種數據格式
- 25. Bootstrap Modal:如何打開一種情況下的模態並使用相同的按鈕禁用另一種情況下的同一模式?
- 26. 如何在同一模型中使用另一種方法中的模型中的一種方法使用insert_id
- 27. Ruby Regex:如何匹配遵循另一種模式的模式?
- 28. 刪除包含另一種模式多模式
- 29. 這種情況下可以使用哪種設計模式?
- 30. 如何正確使用AES_ENCRYPT?