首页 > 数据库 >关于sqlservice数据库加密和解密

关于sqlservice数据库加密和解密

时间:2022-11-30 14:45:03浏览次数:71  
标签:VARCHAR dbo 解密 Result VARBINARY 加密 sqlservice

SQL Server加密与解密

 

原始文档:https://www.cnblogs.com/karkash/

一、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、执行结果

 

本文属于借鉴,不属于个人。希望对你们有用!

 

标签:VARCHAR,dbo,解密,Result,VARBINARY,加密,sqlservice
From: https://www.cnblogs.com/nanjie1101/p/16938385.html

相关文章

  • 双向认证接口(ssl加密)使用fiddler工具抓取+如何设置jmeter
    一、Fiddler抓包加密(ssl)接口粗略记录下项目接口加密后的操作 1、ios手机    1、PC端安装开发或运维提供的证书(一般有xxx.cer和xxx.p12);    2、iO......
  • 如何使用磁带机加密备份文件
    我的磁带机是HPlto6,支持ltfs文件格式及加密,以下是如何加密及读取加密文件,注意加密是整盘加密,不是个别文件加密1、输入以下命令,在该目录下生成密钥(XXX建议改成磁带的编号)......
  • vue ts md5加密
    安装一下ts-md5npminstallts-md5引入import{Md5}from'ts-md5'使用letresult=Md5.hashStr('加密文本')去看看教程......
  • 使用RSA公钥和私钥实现数据加密通信
    importbase64fromCryptoimportRandomfromCrypto.PublicKeyimportRSAfromCrypto.CipherimportPKCS1_v1_5defget_cipher(key_length):#生成伪随机数r_gen......
  • 基因测序中的云计算解密
    云计算为什么可以基因测序中持续发展落地? 随着基因工程在疾病风险、祖源分析等一些新应用新场景的出现,催生了不同的算力需求,对计算架构也提出更高要求。生物测序可以说......
  • vue中的加密登录
    场景:需求是要把登录时候的密码加密,不允许用户在浏览器F12和类似Fiddler之类的抓包工具抓包获取用户登录的密码参数解决办法和思路:使用md5加密md5加密MD5(单项散列算法)的......
  • vulnhub靶场压缩文件解密
    fcrackzip爆破fcrackzip-D-p/usr/share/wordlists/rockyou.txt-usecr3tSteg.zipjohn爆破zip2johnsecr3tSteg.zip|teehash#转换为可识别的hashjohnhashdi......
  • CSP2022-T2(解密)
    【题目来源】:http://oj.tfls.net/d/lnzt/p/14  【分析】由题目可知:n=p×q,e×d=(p−1)(q−1)+1,化解可得:e×d=p×q-p-q+1+1=n-p-q+2,又从题目可知:m=n-e×d+2,合并可得,m=......
  • 币安成为“新救世主”?承诺为加密行业复苏计划提供10亿美元!
    近日,币安承诺将向其设立的行业复苏计划(IRI)提供10亿美元资金,并打算在“如果有需要”的情况下,可将投入资金增加到20亿美元,并表示该计划“不是投资基金”,旨在支持“并非自身......
  • 红队隧道加密之MSF流量加密(二)
    前言如今大多数企业的内网都部署了流量审计服务,用来专门分析流量特征,比如后门特征和行为特征若直接使用Metasploit对内网进行横向渗透,其产生的流量会很容易被内网......