gpt4 book ai didi

关于SQL Server加密与解密的问题

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章关于SQL Server加密与解密的问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、PassPhrase加密 。

1.1、概要简述 。

1)对于不涉及证书及密钥的应急的数据加密,可以直接基于用户提供的密码来加密和解密数据.

2)通行短语(PassPhrase)是允许存在空格的密码。这个PassPhrase不会存储在数据库中,因而也就意味着不会被使用存储的系统数据"破解"。同时,可以使用空格创建一个长的、易于记忆的句子来加密和解密敏感数据.

3)PassPhrase支持的数据列类型有nvarchar、varchar、nchar、char、varbinary、binary.

1.2、加密函数 。

?
1
2
3
4
5
6
7
8
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、解密函数 。

?
1
2
3
4
5
6
7
8
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、结果测试 。

?
1
2
3
SELECT dbo.EncryptPass( '测试字符串' ) AS RESULT
SELECT dbo.DecryptPass(0x0100000045FE8873D07BFB747D33D81D1C1E06CA3EC10D718CF603E395D4493BFBFC5683) AS RESULT
SELECT dbo.DecryptPass(dbo.EncryptPass( '测试字符串' )) AS RESULT

1.5、执行结果 。

关于SQL Server加密与解密的问题

2、证书加密 。

2.1、概要简述 。

1)证书可以在数据库中加密和解密数据.

2)证书包含密钥对、证书拥有者的信息、证书可用的开始和结束过期日期,同时还包含公钥和密钥,前者用来加密,后者用来解密.

3)SQL Server可以生成它自己的证书,也可以从外部文件或程序集载入。证书比非对称密钥更易于移植,可以在数据库中很方便地重用.

2.2、创建证书 。

?
1
2
3
CREATE CERTIFICATE TestCert
ENCRYPTION BY PASSWORD = 'HelloWorld'
WITH SUBJECT= 'Hello World' , START_DATE= '2021-01-20' , EXPIRY_DATE= '2021-12-31'

2.3、加密函数 。

?
1
2
3
4
5
6
7
8
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、解密函数 。

?
1
2
3
4
5
6
7
8
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、结果测试 。

?
1
2
3
SELECT dbo.EncryptCert( '测试字符串' ) AS RESULT
SELECT dbo.DecryptCert(0x836021834D8D25E4DAD0CD26767A77A7FFF9CE9BDCA7BDE72E418118DB58DFB8AF6325B7A9D1D6C2D5D43800120A5C5D212BC4A645D10A065A147C5E97B419DAF6DC203598E376AE4A520B45D145F2C2A6BAE23B49AD3EA45BDAAC1FBD78E8402195DDA0842CA5A89942D03C5D7B82F7E8241D8BD698115C78CEBD5AC0066C6C) AS RESULT
SELECT dbo.DecryptCert(dbo.EncryptCert( '测试字符串' )) AS RESULT

2.6、执行结果 。

关于SQL Server加密与解密的问题

到此这篇关于关于SQL Server加密与解密的问题的文章就介绍到这了,更多相关SQL Server加密与解密内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://www.cnblogs.com/atomy/archive/2021/01/20/14302326.html 。

最后此篇关于关于SQL Server加密与解密的问题的文章就讲到这里了,如果你想了解更多关于关于SQL Server加密与解密的问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com