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

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

发布网友 发布时间:2023-11-19 08:05

我来回答

3个回答

热心网友 时间:2024-01-09 08:21

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

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

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

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

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

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

热心网友 时间:2024-01-09 08:22

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

热心网友 时间:2024-01-09 08:22

在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
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 网络用语打酱油什么意思577 什么是连锁销售?3 连锁经营是什么,具体是谁做的2 一般在书法落款的姓名印章上刻什么字,我的名字是杨天云? 如何在电脑上打印文件?? 如何理解情绪的本质是生理唤醒和认知的改变 曾烁佳英文名字怎么翻译 男孩 名字中带有《烁》字 好吗?说说原因7 “正”字的读音有几种,分别组什么词11 连锁销售还能做吗?5 我男朋友这几天说老梦见我前男友找他聊天1 写周总结后面名字落款是什么意思?1 在对于李重起兵反宋的战争中赵普出了哪些计策? 二手车评估机构的职能是什么 车祸同等责任一方死亡怎么赔偿2 微信不小心重新注册了想登回原来的怎么办? 交通事故致一人死亡,双方同等责任,怎么赔偿? 我一个手机号注册了两个,另外一个登不上了,怎么办? 浙江省温州市鹿城区 滨江街道属于什么派出所 温州2020年会展路滨江花会拆吗? 同等责任致一人死亡刑事责任 ...三个月左右,我总以为是感冒了,总是干咳,很少有痰,还从不发烧... 女孩子抽烟可以减肥吗? ...有段时间了经常死机后过会蓝屏.360查找蓝屏文件intelppm.sys... 台式机电脑开不了机,蓝屏。起来后出现死机,蓝屏现象。 特别是一进游戏... 一个手机号码可以申请两个吗? 焦婷的人物评价 我一个手机号注册了两个,另外一个登不上了,怎么办? 深圳市女巫骑士时装没了 必须常吃的水果有哪几种?35 寓意好的英语单词1214 南通有多少家婚庆行业类网站,知名度和影响力如何 信阳市谷麦光电子科技有限公司怎么样 宋太祖深知得人心者得天下他统治期间采取了什么策略 大连龙里柏时装有限公司怎么样 五菱箱式货车有哪几款?3 哈利波特与密室多少字96 信心一炷香,无上菩提心什么意思 上海远阳工业气体有限公司怎么样?3 上海利旦工业气体有限公司怎么样?