SQL Server(2005及之后的版本)提供了内置的加密机制,加密方式有两大类,一类是对称加密,另一类则是非对称加密。 SQL Server的对称加密示例代码: SQL Server的非对称加密示例代码: --创建一个非对称密钥(不用每次都创建),这个对称密钥密码为123456,使用RSA512算法,另外还有RSA1024和RSA2048,强度更高,可加密内容更长,密钥生成速度也会慢不少,RSA512这里足够用了 CREATE ASYMMETRIC KEY my_asymetric_key WITH ALGORITHM = RSA_512 ENCRYPTION BY PASSWORD = N'123456'; DECLARE @strClearText NVARCHAR(100); SET @strClearText = N'3000.00'; --加密,和对称加密不一样,不需要提供密码,也不需要打开密钥 DECLARE @strCipherText VARBINARY(MAX); SET @strCipherText = EncryptByAsymKey(AsymKey_ID('my_asymetric_key'), @strClearText); --显示密文 SELECT @strCipherText AS [密文]; --解密,必须提供生成密钥时候的密码,密码不正确的话就会出错 --密钥选择不正确的话会得到NULL结果 DECLARE @strDecrypted VARBINARY(MAX); SET @strDecrypted = DecryptByAsymKey(AsymKey_ID('my_asymetric_key'), @strCipherText, N'123456'); --显示出解密后的明文 SELECT Convert(NVARCHAR(100), @strDecrypted) AS [解密后的明文]
|
|
来自: 时间剧毒 > 《学习资料_SQL》