(三)通过对数据的加密来确保数据传输的安全性
1口令加密:是个基本的数据加密技能,也是最弱的一种,它采用用户提供的口令字符串执行 加密
2 对称加密::运用单一的密钥对数据执行 加密和解密,我们也可理解为一个“暗号”
3非对称加密:它是最强的一种加密技能,因为它采用不同的密钥执行 加密和解密,结合证书来实现。在一般情况下不运用这种加密技能对数据量大的数据执行 加密,除非传输的数据安全性比操作数据的性能。
建立非对称密钥的语法如下:
Create asymmetric key asym_key_name
[authorization database_principal_name]
{
From
WITH ALGORITHM = {RSA_512 RSA_1024 RSA_2048}
}
ENCRYPTIONBY PASSWORD = ‘PASSWORD’
:: =
File =’path_to_strong-name_file’
Executable file =’path_to_executable_file’
Assembly assembly_name
从语法中可以看出,一般可以采用指定加密算法的要领来建立非对称密钥,也可以采用从夫已经存在的文件中加载的要领建立非对称密钥,可以运用的加密算法有512位的RSA、1024位的RSA、2048位的RSA算法。
下面我们建立一个名为BBS的非对称密钥
Use itet
Go
Create asymmetric key bbs
With algorithm = rsa_512
Encryption by password = ‘fe34&*$PO2hs’
可以从视图sys.asymmetric_keys中查到该非对称密钥:
Select * from sys.asymmetric_keys
也可从SQL SERVER Management studio 对象阅读器中依次展开【数据库】【itet】【安全性】【非对称密钥】中看到非对称密钥
在建立非对称密钥之后,我们来看看如何 用该密钥对bbs执行 加密。在SQL2005中运用 Encryptbyasymkey()加密和Decryptbyasymkey()解密数据
语法如下:
Encrybyasymkey ( asym_key_id, {‘cleartext’ @cleartext})
Dncrybyasymkey(asym_key_id, {‘ciphertext’ @ciphertext} [ ,’asym_key_password’])
其中:asym_key_id 是数据库中非对称密钥的id
Cleartext:是运用非对称密钥加密的数据字符串
@cleartext 可以是类型为varchar 、char、 nvarchar、nchar、wchar等变量,包含了非对称密钥的加密数据
Ciphertext 是运用非对称密钥加密的数据字符串
@ciphertext 可以是类型为varchar、char、nvarchar、nchar、wchar等变量
Asym_key_password: 是用于加密数据库中非对称密钥的密码
不管是加密还是解密都用到了asym_key_id这个参数,即非对称密钥的id,这个可以通过asymkey_id()产生。语法如下:
Asymkey_id(‘asym_key_name’) 通过非对称密钥的名字来返回非对称密钥的id
下面我们就以员工的工资来测试
加密:
Intsert into yuangong values (1,’zhanglijie’,’gongchengbu’,
encryptbyasymkey(asymkey_id(‘bbs’),’5000’))
解密:
select id,uname,bumen,convert(varchar(20),
decryptbyasymkey(asymkey_id('bbs'),gongzi,
cast('fe34&*$PO2hs'as nvarchar))) as gongzi from dbo.yuangong
where id=1
三 防止 SQL注入
SQL注入主要是指黑客或恶意用户在运用 程序不知道的情况下通过运用 程序来对SQL数据库执行恶意代码来侵害数据库从而达到他们想要的结果。如对数据库的增、删、改等操作,我们可通过对命令
Or 1=1--、having 1=1--等命令的封锁来减少危害。
第1页:浅谈数据库服务器的安全性(1) 第2页:浅谈数据库服务器的安全性(2)
© CopyRight 2008-2010, JSJGZ.CN, 计算机故障 Inc. All Rights Reserved
闽ICP备09000710号 增值电信业务经营许可证闽B2-20080004号 Rss订阅