2010-09-07 79 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