2010-09-07 34 views
6

我知道如何使用AES_128使用ColdFusion加密數據。我也知道如何使用MSSQL AES_128加密數據。有誰知道是否可以使用AES_128在ColdFusion中加密數據,然後解密MSSQL中的字符串?SQL和ColdFusion加密

我已經玩了很多,似乎無法弄清楚。

感謝, 保羅

+0

您是否嘗試在兩側使用密碼加密/解密? – 2010-09-07 18:38:08

+0

是的,我已經嘗試過了。我不認爲你可以在sql中使用像AES這樣的高級算法和密碼。 – Paul 2010-09-08 12:49:05

回答

3

是的,這是可能的。沒有任何關於AES的專利。但是,實現分組密碼的方法有很多,其中大多數都是不正確的。 MS SQL的encryptbykey()使用ECB模式,默認爲ANSI_PADDING。我會嘗試使用ECB模式下的AES使用相同的密鑰解密消息,並且可能只是工作。應該使用CBC模式,但這需要IV,並且encryptbykey()不接受IV作爲參數,因此它的ECB模式。 (MySQL也ecb模式,我看過代碼。它是一個恥辱,我不能這樣做與MS SQL)。

+0

我正在使用encryptbykey()方法。我能夠在SQL中對字符串進行加密和解密,但我認爲我遇到的問題是MSSQL使用Symmetric密鑰來加密和解密數據以及我正在使用的服務器端語言(即ColdFusion)還需要一個密鑰,但是我無法在ColdFusion中複製該密鑰,因爲據我所知,您實際上無法查看對稱密鑰的內容是否正確?我試過使用對稱密鑰的gui_key,但是這不起作用。 – Paul 2010-09-09 13:01:49

+0

@Paul aes是一個對稱密碼。 gui_key()是一個string2key函數,與對稱無關,它實際上是一個消息摘要。你可以使用另一個string2key函數,或者隨機生成一個key,並且你不需要string2key函數。 – rook 2010-09-09 16:34:07