加密算法用于把数据转换成密文,从SQL Server 2016 (13.x)开始,除了AES_128, AES_192 和 AES_256 之外,其他加密算法都已经过时了。 没有一个加密算法能够适应所有的情况,在选择加密机制时,可以借鉴一些成功的经验:
SQL Server提供的加密方式主要是值级加密(Cell Level)和文件级别加密(TDE)。SQL Server提供的加密机制主要有:
对于单个值,可以使用TSQL函数EncryptByPassPhrase()进行加密,使用DecryptByPassPhrase()进行解密。传递一个短语作为密码,使用128bit键长的TRIPLE DES 算法进行加密。
EncryptByPassPhrase ( ‘passphrase‘, ‘cleartext‘ [ , add_authenticator , authenticator ] ) DecryptByPassPhrase ( ‘passphrase‘, ‘ciphertext‘ [ , add_authenticator ,authenticator ] )
参数注释:
返回值:这两个函数的返回值都是varbinary,最大长度是8000Bytes。
举个例子,使用这两个函数对数据进行加密和解密:
declare @cipher varbinary(8000) select @cipher=Encryptbypassphrase(N‘悦光阴‘,‘A good man‘) select @cipher as EncryptedText,cast(Decryptbypassphrase(N‘悦光阴‘,@cipher) as varchar(128)) as DecryptedText
参考文档:
原文:https://www.cnblogs.com/ljhdo/p/12907215.html