本文主要介绍了SQL Server加密和解密的相关知识。这篇文章对大家都很详细,对大家的学习或工作都有一定的参考价值。需要的朋友可以参考一下。
首先,密码加密
1.1.简介
1)对于不涉及证书和密钥的紧急数据加密,可以根据用户提供的密码直接对数据进行加密和解密。
2)密码是允许空格的密码。该密码不会存储在数据库中,这意味着它不会被存储的系统数据“破解”。同时,空格可以用来创建一个长且易于记忆的句子来加密和解密敏感数据。
3)PassPort支持的数据列类型有nvarchar、varchar、nchar、char、varbinary和binary。
1.2、加密功能
CREATE FUNCTION dbo。EncryptPass(@EnPass VARCHAR(32))
返回变量二进制(最大值)
如同
开始
DECLARE @Result VARBINARY(MAX)
SET @ Result=encryptby密码(' HelloWorld ',@EnPass)
返回@结果
结束
1.3.解密功能
CREATE FUNCTION dbo。DecryptPass(@ DePass VARBINIC(MAX))
返回VARCHAR(32)
如同
开始
DECLARE @Result VARCHAR(32)
SET @Result=CONVERT(VARCHAR,decryptby密码(' HelloWorld ',@DePass))
返回@结果
结束
1.4.结果测试
SELECT dbo。结果加密通过(“测试字符串”)
SELECT dbo。解密通过(0x 0100000045 Fe 8873d 07 bfb 747d 33d 81 D1 C1 e 06 ca 3 EC 10d 718 cf 603 e 395d 4493 bfb C5 683)结果
选择dbo . decryptpass(dbo . encryptpass('测试字符串'))作为结果
1.5、实施结果
二、证书加密
2.1.简介
1)证书可以对数据库中的数据进行加密和解密。
2)证书包含密钥对、证书所有者的信息、证书可用的起止失效日期,还包含公钥和密钥,前者用于唐山微信小程序加密,后者用于解密。
3)SQL Server可以生成自己的证书,也可以从外部文件或程序集加载。证书比非对称密钥更容易移植,并且可以在数据库中轻松重用。
2.2、创建证书
创建证书测试证书
密码加密='HelloWorld '
主题='你好,世界',开始日期='2021-01-20 ',截止日期='2021-12-31 '
2.3、加密功能
CREATE FUNCTION dbo。EncryptCert(@EnPass VARCHAR(32))
返回变量二进制(最大值)
如同
开始
DECLARE @Result VARBINARY(MAX)
SET @ Result=EncryptByCert(Cert _ ID(' TestCert '),@EnPass)
返回@结果
结束
2.4、解密功能
CREATE FUNCTION dbo。DecryptCert(@ Depass VARBINIC(MAX))
返回VARCHAR(32)