当前位置:首页 » 编程语言 » sql字段加密

sql字段加密

发布时间: 2022-11-12 13:07:46

sql数据文件怎么加密

首先要说明不能限制 “谁”,只能限制部分人

其次是加密数据肯定要降低效率

一般情况你数据表中数据不用全部加密,某些关键字段加密就行了

但是你这个只能用可逆转加密,而且加密后 查询检索会麻烦些

不能直接复制,使用 Blob 字段就类型就行了

要加密简单点用 Base64编码好了,也不能直接复制,肉眼看不出来,拿走也不能直接用

其它的加密方式 效果好些,但效率就低了。

Ⅱ sql中加密

其实只要仔细看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代码,真是不错。
让我们来看看它是怎么做的,注意这一行select @passwd = pwdencrypt(@passwd),这个时后@passwd就被加密了,让我们也来试一下
DECLARE @ClearPWD varchar(255)
DECLARE @EncryptedPWD varbinary(255)
SELECT @ClearPWD = 'test'
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
SELECT @EncryptedPWD
看上去不错,确实被加密了!

Ⅲ SQL如何加密

对MSSQL的用户信息有兴趣的,可能会发现master.dbo.sysxlogins里面存放着用户的口令,可是呢,password字段如果不是null就是一堆看不懂的binary,这个口令是怎么加密的呢?
其实只要仔细看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代码,真是不错。
让我们来看看它是怎么做的,注意这一行select @passwd = pwdencrypt(@passwd),这个时后@passwd就被加密了,让我们也来试一下
DECLARE @ClearPWD varchar(255)
DECLARE @EncryptedPWD varbinary(255)
SELECT @ClearPWD = 'test'
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
SELECT @EncryptedPWD
看上去不错,确实被加密了,可是我怎么还原呢?

呵呵,这就没戏了,口令加密都是单向的,用加密后的密文来比较就可以了。
继续看看其它用户相关的sp,可以发现master.dbo.sp_password里面有口令比较的内容。
pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END))
不用去理会xstatus,这是一个状态掩码,一般我们用的时候就直接用0就可以了
DECLARE @ClearPWD varchar(255)
DECLARE @EncryptedPWD varbinary(255)
SELECT @ClearPWD = 'test'
SELECT @EncryptedPWD = CONVERT(varbinary(255), pwdencrypt(@ClearPWD))
SELECT pwdcompare(@ClearPWD, @EncryptedPWD, 0)
SELECT pwdcompare('ErrorPassword', @EncryptedPWD, 0)
这样我们就可以使用这两个函数来加密自己的密码了

Ⅳ 如何在SQL Server数据库中加密数据

热心网友
在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加密串。

Ⅳ 怎么实现对SQL Server数据库的字段进行加密和解密

怎么实现对SQL Server数据库的字段进行加密和解密
那你可以通过编程 在保存的时候,先把字段内容进得加密,然后再保存到数据库中。 读取的时候,读出数据后,再进行解密操作。

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

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

Ⅶ 数据库如何实现字段加密

插入加密数据:
1、INSERT
INTO
userdata(username,pasword,encryptedpassword)
2、VALUES
('smith','htims',AES_ENCRYPT('htims','key'))
上面的插入语句有三个字段,“用户名”、“密码”和“加密的密码”。
AES_ENCRYPT()函数需要一个“key”来协助加密,同样,解密也需要它。
从表中查询加密数据
1、SELECT
username,pasword,AES_DECRYPT(encryptedpassword,'key')
2、FROM
userdata.

Ⅷ sql数据库怎么加密

SQL Server中的加密简介
在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。这导致一个问题,数据库中加密的数据仅仅是对某一特定程序有意义,而另外的程序如果没有对应的解密算法,则数据变得毫无意义。

到了SQL Server2005,引入了列级加密。使得加密可以对特定列执行,这个过程涉及4对加密和解密的内置函数

SQL Server 2008时代,则引入的了透明数据加密(TDE),所谓的透明数据加密,就是加密在数据库中进行,但从程序的角度来看就好像没有加密一样,和列级加密不同的是,TDE加密的级别是整个数据库。使用TDE加密的数据库文件或备份在另一个没有证书的实例上是不能附加或恢复的。

Ⅸ sql2008 数据库 建表 表中的某一个字段要加密处理

/*
1.利用对称密钥
搭配EncryptByKey进行数据jiami
使用DecryptByKey函数进行jiemi
这种方式比较适合大数据量
*/
CREATE SYMMETRIC KEY ZXC WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'ZXC123456'
OPEN SYMMETRIC KEY ZXC DECRYPTION BY PASSWORD = 'ZXC123456'
--jiami
SELECT Encryptbykey(Key_guid('ZXC'), 'YHDH_C')
--jiemi
SELECT CONVERT(VARCHAR(10), Decryptbykey())
CLOSE SYMMETRIC KEY ZXC;
DROP SYMMETRIC KEY ZXC;

/*
2.利用非对称密钥
搭配EncryptByAsymKey进行数据jiami
使用DecryptByAsymKey函数进行jiemi
用于更高安全级别的加jiemi数据
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE ASYMMETRIC KEY ABC WITH ALGORITHM=RSA_2048 ENCRYPTION BY PASSWORD = 'ZXC123456'
ALTER ASYMMETRIC KEY ABC WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'ZXC123456')
--jiami
Select Encryptbyasymkey(Asymkey_id ('ABC'), 'ZXC123456')
SELECT CONVERT(VARCHAR(100), Decryptbyasymkey (Asymkey_id('ABC'),96B1F7E7B7AC3E945E106D82 ))
DROP ASYMMETRIC KEY ABC;
DROP MASTER KEY

/*
3.利用凭证的方式
搭配EncryptByCert进行jiami
DecryptByCert函数进行jiemi
比较类似非对称密钥
*/

CREATE CERTIFICATE ZXC
ENCRYPTION BY PASSWORD = 'xiaoxiao'
WITH SUBJECT = 'DB_Encrypt_Demo Database Encryption Certificate',
START_DATE = '2015-10-1'
--jiami
Select Encryptbycert(Cert_id('ZXC'), '123456')
--jiemi
SELECT convert(Varchar(10), Decryptbycert(Cert_id('ZXC'), ,N'xiaoxiao'))
DROP CERTIFICATE ZXC;

/*
4.利用mima短语方式
搭配EncryptBypassPhrase进行jiami
使用DecryptByPassPhrase函数来jiemi
比较适合一般的数据加jiemi
*/
--jiami
Select Encryptbypassphrase('xiaoma', '123456')
--jiemi
SELECT CONVERT(VARCHAR(100), Decryptbypassphrase('xiaoma', ))

热点内容
微软怎么关闭配置更新 发布:2025-01-12 08:34:23 浏览:315
wifi的有限的访问权限 发布:2025-01-12 08:34:14 浏览:608
cftp文件重命名 发布:2025-01-12 08:33:27 浏览:880
https的加密算法 发布:2025-01-12 08:19:15 浏览:652
数据库交 发布:2025-01-12 08:09:06 浏览:471
一台剪辑电脑要什么配置 发布:2025-01-12 07:50:16 浏览:11
android与java 发布:2025-01-12 07:50:12 浏览:497
打印机手机连接密码是什么 发布:2025-01-12 07:48:31 浏览:585
冒险岛2什么服务器 发布:2025-01-12 07:39:22 浏览:136
phpcms文件夹权限 发布:2025-01-12 07:22:06 浏览:122