如何在sql server中解密视图(关于SQL Server加密与解密的问题)
类别:数据库 浏览量:1378
时间:2021-10-02 01:18:29 如何在sql server中解密视图
关于SQL Server加密与解密的问题一、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加密与解密内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- mysql中提取日期的函数是什么(MySQL获得当前日期时间函数示例详解)
- php连接mysql需要数据源吗(php连接mysql数据库最简单的实现方法)
- mysql顺序排序(Mysql 中文排序规则说明)
- SqlServer生成连续数字根据指定的数字操作(SqlServer生成连续数字根据指定的数字操作)
- mysqlexplain的用法(MySQL SHOW STATUS语句的使用)
- sql server 货币型例子(sql server把退款总金额拆分到尽量少的多个订单中详解)
- mysqllinux解压版安装教程学习(解决Linux安装mysql 在/etc下没有my.cnf的问题)
- mysql数据库简单操作(一篇文章教会你进行MySQL数据库和数据表的基本操作)
- mysql如何使用临时表(MySQL中临时表的使用示例)
- mysql索引优化技巧(MySQL如何优化索引)
- plsql提示developer(PL/SQL Developer过期的两种解决方法)
- mysql高级变量查询(MySQL 使用自定义变量进行查询优化)
- mysql有数据但筛选值为空(解决从集合运算到mysql的not like找不出NULL的问题)
- mysql触发器如何创建(MySQL 触发器的使用和理解)
- sqlserver字符串截取填充(SQL Server实现split函数分割字符串功能及用法示例)
- mysql 查询出来的字段拼接(mysql 多个字段拼接的实例详解)
- 泰国旅游攻略(泰国旅游攻略必去景点)
- 越难春卷(越难春卷皮怎么用)
- 休闲VS新古典 办公家居简约设计(办公家居简约设计)
- 15个新成 园 位置公布 深圳龙岗2022年共建花园建设又有大动作(15个新成园位置公布)
- 记者手记 书记带我去 巡街(记者手记书记带我去)
- 富士胶片集团将向土耳其东南部地震灾民捐赠5000万日元 | 美通社(富士胶片集团将向土耳其东南部地震灾民捐赠5000万日元)
热门推荐
- css实现很炫酷的效果(纯CSS实现酷炫的霓虹灯效果附demo)
- css3定义自定义字体(CSS3字体效果的设置方法小结)
- centos上docker的部署(CentOS8下的Docker使用详解)
- python多线程实现(python多线程并发让两个LED同时亮的方法)
- css3边框讲解(详解css3 object-fit属性)
- mysql cache(MySQL取消了Query Cache的原因)
- html5复制修改(HTML5实现无刷新修改URL的方法)
- 存储过程中如何使用事务
- thinkphp5访问路径(thinkphp5修改view到根目录实例方法)
- 设置mysql字符集语句(MySQL修改字符集的实战教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9