2014-02-11 113 views
1

我有MS SQL 2008 R2中的數據,我想要加密並傳輸到MySQL 5.5數據庫。加密的原因是我不完全信任傳輸層,並且此數據相當敏感,所以最好將其存儲爲加密格式。數據在MS SQL Server 2008中創建和更新,但只需要用於MySQL中的「select」。使用AES加密/解密在MySQL 5.5中解密MS SQL Server 2008 R2數據

我遇到的挑戰是MS SQL Server 2008 R2中的AES算法顯然與MySQL 5不一樣。它向內容添加「填充」,根據原始數據是否編碼來更改值作爲UTF-8或UNICODE,顯然有一些16位隨機向量被添加到哈希中。

你可以建議可能在MS SQL Server 2008 R2和MySQL 5.5中相同的其他加密/解密算法嗎?

回答

1

對於數據傳輸,使用專門爲進行數據傳輸的協議,即ENCRYPTBYKEYAES_ENCRYPT都不適合協議,它們只是密碼功能。

設計用於數據傳輸的協議的一個很好的例子是Transport Layer security。它需要處理很多「細節」,你不知道它們需要被覆蓋。用它。不要試圖重新發明輪子並釋放世界上另一種破碎的加密方案。

要嚴格回答問題:不,在MySQL中使用SQL Server加密函數加密的數據無法解密。 SQL Server函數輸出包含密鑰ID和IV,這是以專有格式使用的,並且沒有記錄。