一、passphrase加密
1.1、概要简述
1)对于不涉及证书及密钥的应急的数据加密,可以直接基于用户提供的密码来加密和解密数据。
2)通行短语(passphrase)是允许存在空格的密码。这个passphrase不会存储在数据库中,因而也就意味着不会被使用存储的系统数据”破解”。同时,可以使用空格创建一个长的、易于记忆的句子来加密和解密敏感数据。
3)passphrase支持的数据列类型有nvarchar、varchar、nchar、char、varbinary、binary。
1.2、加密函数
create function dbo.encryptpass(@enpass varchar(32)) returns varbinary(max) as begin declare @result varbinary(max) set @result=encryptbypassphrase('helloworld',@enpass) return @result end
1.3、解密函数
create function dbo.decryptpass(@depass varbinary(max)) returns varchar(32) as begin declare @result varchar(32) set @result=convert(varchar,decryptbypassphrase('helloworld',@depass)) return @result end
1.4、结果测试
select dbo.encryptpass('测试字符串') as result select dbo.decryptpass(0x0100000045fe8873d07bfb747d33d81d1c1e06ca3ec10d718cf603e395d4493bfbfc5683) as result select dbo.decryptpass(dbo.encryptpass('测试字符串')) as result
1.5、执行结果
二、证书加密
2.1、概要简述
1)证书可以在数据库中加密和解密数据。
2)证书包含密钥对、证书拥有者的信息、证书可用的开始和结束过期日期,同时还包含公钥和密钥,前者用来加密,后者用来解密。
3)sql server可以生成它自己的证书,也可以从外部文件或程序集载入。证书比非对称密钥更易于移植,可以在数据库中很方便地重用。
2.2、创建证书
create certificate testcert encryption by password='helloworld' with subject='hello world', start_date='2021-01-20', expiry_date='2021-12-31'
2.3、加密函数
create function dbo.encryptcert(@enpass varchar(32)) returns varbinary(max) as begin declare @result varbinary(max) set @result=encryptbycert(cert_id('testcert'),@enpass) return @result end
2.4、解密函数
create function dbo.decryptcert(@depass varbinary(max)) returns varchar(32) as begin declare @result varchar(32) set @result=convert(varchar,decryptbycert(cert_id('testcert'),@depass,n'helloworld')) return @result end
2.5、结果测试
select dbo.encryptcert('测试字符串') as result select dbo.decryptcert(0x836021834d8d25e4dad0cd26767a77a7fff9ce9bdca7bde72e418118db58dfb8af6325b7a9d1d6c2d5d43800120a5c5d212bc4a645d10a065a147c5e97b419daf6dc203598e376ae4a520b45d145f2c2a6bae23b49ad3ea45bdaac1fbd78e8402195dda0842ca5a89942d03c5d7b82f7e8241d8bd698115c78cebd5ac0066c6c) as result select dbo.decryptcert(dbo.encryptcert('测试字符串')) as result
2.6、执行结果
到此这篇关于关于sql server加密与解密的问题的文章就介绍到这了,更多相关sql server加密与解密内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!