问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql server中怎么给数据库表中的用户密码加密

发布网友 发布时间:2022-04-19 13:30

我来回答

3个回答

热心网友 时间:2022-04-10 00:36

1、首先我们电脑上要安装有SQL Server,然后要准备一个MDF数据库文件。打开SQL Server。

2、点开数据库这一级,右键点击数据库然后选择-所有任务-附加数据库-附加数据库。

3、在弹出界面上点击…按钮,然后找到准备好的MDF数据库文件的存放位置。

4、找到之后选择MDF数据库文件,并点击确定按钮。

5、窗口自动关闭后你就会发现,数据库已经附加上了。

6、如果想把这个数据库去掉的话,那就右键该数据库(比如刚刚附加的数据库)选择所有任务—分离数据库—确定。

热心网友 时间:2022-04-10 01:54

1、测试使用SQL Servre 2012 R2,创建如下的数据表:

--创建测试用的用户表

CREATE TABLE TBLUser 

(    

    Name             nvarchar(30),     

    Password         varbinary(1000),    

)

GO

2、创建数据库主密钥

数据库主密钥(Database Master Key)在服务主密钥之下,由服务主密钥进行加密。这是一个数据库级别的密钥,可以用于为创建数据库级别的证书或非对称密钥提供加密。每一个数据库只能有一个数据库主密钥,通过T-SQL语句创建。具体代码如下:

--创建数据库主密钥

CREATE MASTER KEY ENCRYPTION BY PASSWORD ='passW@ord'

GO

3、创建证书

创建一个用来加密对称秘钥证书,具体代码如下:

--创建证书

CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate'

GO

4、创建一个对称秘钥

由SQL Server加密层次结构可以看出,对称密钥可以通过密码创建,也可以通过其它对称密钥、非对称密钥和证书创建。本文以证书创建一个测试用的对称秘钥,具体代码如下:

--创建对称密钥

CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256

    ENCRYPTION BY CERTIFICATE TestCert 

GO

5、加密数据

先打开证对称秘钥,再使用ENCRYPTBYKEY函数加密数据,完成后关闭对称秘钥。具体代码如下:

--使用对称秘钥加密数据

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;

INSERT INTO TBLUser values('张三', ENCRYPTBYKEY(Key_Guid(N'TestSymmetric'), '123456'));

CLOSE SYMMETRIC KEY TestSymmetric;

GO

6、查看加密后的数据

直接下SQL查询加密后的数据,可以看到password的内容是一串不可以阅读的16进制的字符。

--查看加密后的数据

SELECT * FROM TBLUser

GO

7、解密数据

先打开证对称秘钥,再使用DecryptByKey函数解密数据,完成后关闭对称秘钥。具体代码如下:

--解密数据

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;

SELECT Name, CAST(DecryptByKey(password) as varchar(100)) Password FROM TBLUser;

CLOSE SYMMETRIC KEY TestSymmetric;

GO

热心网友 时间:2022-04-10 03:28

在SQl2005下自带的函数hashbytes() ,此函数是微软在SQL SERVER 2005中提供的,可以用来计算一个字符串的 MD5 和 SHA1 值,使用方法如下:
--获取123456的MD5加密串
select hashbytes('MD5', '123456') ;
--获取123456的SHA1加密串
select hashbytes('SHA1', '123456') ;有了这个函数可以在sqlserver中为字符串进行加密,但是hashbytes() 函数的返回结果是 varbinary类型,(以 0x 开头 16 进制形式的二进制数据)通常情况下,我们需要的都是字符串型的数据,很多人首先想到的可能就是用 CAST 或 Convert 函数将varbinary 转换为 varchar,但这样转换后的结果会是乱码,正确转换 varbinary 可变长度二进制型数据到 16 进制字符串应该使用系统内置函数 sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select sys.fn_varbintohexstr(hashbytes('MD5', '123456'))
然后就可以截取需要的部分select lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))为md5加密串。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天将雄师观后感600字 为什么喝酒会降血糖 牛栏山 52度浓香型白酒-购买最佳价格 全兴大曲 52度浓香型白酒-购买最佳价格 笔记本电脑怎么接音箱电脑如何连接外置音箱 笔记本电脑有音箱插孔吗笔记本电脑如何连接喇叭 冰箱压缩机过热启动5秒就停了 周长相等的正方形和圆,其面积比是多少 周长相等的正方形和圆面积比是多少 周长相等的正方形与圆形,边长与半径的比是( ),面积之比是( )。 要有... 如何加密后台数据库的方法 数据库里加密的密码是怎么实现的 如何在SQL Server数据库中加密数据 sql数据库怎么加密 如何对sqlite3数据库进行加密 数据库如何加密 怎样加密数据库中的字段? 如何实现数据库连接的密码加密 sql数据加密有几种方法? 数据库文件如何有效的加密? 谁能简单介绍下数据库加密? 怎么对数据库已有的数据进行加密 如何对数据库进行加密和解密 数据库怎么加密? win8.1怎么升级win10正式版 win8如何升级到win10 《山海情》2021爆款预定,从导演到演员阵容有多强大? 也平凡演员表_全部演员介绍 伪装者演员表介绍 文章换新造型,和前妻近况大不同,好爸爸人设还能... 如何给access2016数据库加密 数据库如何实现字段加密 SQL Server数据库如何正确加密? 笔记本电脑win8.1怎么升win10 国潮当道,时尚国风华为P30 Pro手机壳有哪些推荐? 美艳不可方物,适合女生的华为P30 Pro手机壳有哪些... 请问,华为P30 Pro用什么牌子的保护壳防摔性好一点... 华为p30pro 用什么牌子的手机壳质量好,求推荐 有什么颜值比较高的华为P30Pro手机壳吗,实在是不... 华为p30和pro手机壳能通用吗? 华为p30手机用着还不错,就是这自带的膜不咋好用啊... 华为P30POr换整个手机壳多少钱? 分享一下踩坑的经历——入手了华为p30/p30pro手机保... 荣耀30Pro和p30Pro手机壳一样吗? 华为P30Pro的原装盒子里有壳吗 mic book air怎么用键盘关机 苹果电脑昨天我用键盘关机,今天开不了机了怎么办? Win8.1怎样升级Win10正式版 微信好友双方都删除对方,好友的聊天记录也删除了... 如果双方都删除了还能查到聊天记录吗 如果微信好友...