您当前所在位置:主页 > 加密技术 > 数据库加密 >
联系智融 / CONTACT US

客服电话:027-87379468

技术支持:027-87379468

传真:027-87379428

邮箱:gongch@zronggsoft.com

QQ: 点击这里给我发消息 点击这里给我发消息
数据库加密

sql数据库加密方法

发布时间:2015-05-15 14:59
  在SqlServer经常在数据加密存在,如密码域,我们可以使用Sql自带加密功能pwdencrypt()加密,加密不能解决密码,需要使用pwdcompare(\'原\',\'密码\')对比,如果返回的结果为1,表示密码匹配,如果不匹配0
  例如:
  declare@pwdvarchar(50)
  declare@en_pwdvarbinary(256)
  select@pwd=\'abc\'
  select@en_pwd=pwdencrypt(@pwd)
  selectpwdcompare(@pwd,@en_pwd)
  返回的结果是1,说。
  有一个小细节需要注意,其实是有一个参数,pwdcompare():
  pwdcompare(@pwd,@en_pwd,1|0)
  最后一个参数1,密码是区分大小写的,但是默认是0是加密的,不区分大小写。
  无意中看到这个帖子,pwdencrypt()说有漏洞,使用的时候还是小心为好。
  描述:
  MicrosoftSQLServer2000缓冲区溢出漏洞允许访问控制系统
  详细的:
  MicrosoftSQLServer2000内置了一个哈希函数,命名为pwdencrypt()。
  这个函数在缓冲/堆栈溢出的存在,允许攻击者发动拒绝服务攻击,使SQLServer崩溃,通过适当的方式来构建shellcode,可能导致攻击者可以以系统权限执行任意指令。
  下面的示例通过长字符串的353个字符(A)将使SQLServer2000崩溃:
  Selectpwdencrypt(REPLICATE(\'A\',353))
  有些系统可能需要一个较长的字符串来实现的攻击效果,但1000个字无论如何都足以让SQLServer崩溃。
  攻击的方法:
  下面的示例通过长字符串的353个字符(A)将使SQLServer2000崩溃:
  Selectpwdencrypt(REPLICATE(\'A\',353))
  有些系统可能需要一个较长的字符串来实现的攻击效果,但1000个字无论如何都足以让SQLServer崩溃。
  一直没有找到有效的,可能会导致非法访问控制系统shellcode代码。
  在SQLServer加密数据,有三种方法,
  在1、编程语言对数据进行加密,然后将加密后的数据存储在数据库中的SQLServer;
  2、使用SQLServer未公开的加密密码的功能,在SQL代码在调用加密密码的加密数据存储功能。
  3、编写扩展存储过程的外部DLL文件加密,然后通过SQL代码调用加密函数实现数据加密。
  第一种方法是不再描述,使用数据加密的代码示例二方法:
  createtable#temptable(iorderint,pswdvarbinary(1024))
  go
  insertinto#temptablevalues(1,pwdencrypt(\'yang\'))
  insertinto#temptablevalues(2,pwdencrypt(\'lian\'))
  insertinto#temptablevalues(3,pwdencrypt(\'shan\'))
  go
  select*from#temptable
  go
  --数据相等
  select*from#temptable
  wherepwdcompare(\'lian\',pswd)=1
  go
  droptable#temptable
  go
  上面的声明,使用第二功能:pwdencrypt和pwdcompare,实现功能,pwdencrypt两SQLServer秘密返回到输入数据的二进制形式的加密内容进行加密,并pwdcompare用来检查非常清楚,加密的二进制数据内容是平等的,没有解密功能。两功能主要是用来称呼自己的内部SQLServer。具有方便调用的优点。不利的是,这两个功能是不公开的,意味着可以改变,而不是原来的兼容,在使用风险。
  第三种方法,一种使用SQLServer扩展存储过程,sp_addextendedproc,扩展存储过程的名字命名新注册的MicrosoftSQLServer。语法已经写在外部DLL文件函数引入到SQLServer:sp_addextendedproc[@functname=]\'procedure\',[@dllname=]\'dll\'。它的功能,可供其他SQL代码调用。例如使用:
  USEmaster
  GO
  EXECsp_addextendedproc\'xp_hello\',\'c:/xp_hello.dll\'
  功能xp_hello外部文件DLLc:/xp_hello.dll介绍给SQLServer在上述语句执行后,主库更xp_hello扩展存储过程,我们在其他脚本将可以调用扩展存储过程的上述声明中说。一点有限的执行只,sp_addextendedproc在master如果其他图书馆的电话xp_hello,需要添加master定义库名。
如何想进一步了解数据库加密软件的介绍可以武汉智融科技官网产品中心进行详细了解。

本文链接:http://www.zrongsoft.com/a/jiamijishu/shujukujiami/2015/0515/349.html

报价申请
武汉智融科技有限公司 加密专题 EDS
技术咨询
武汉智融科技有限公司 加密专题 EDS
关注我们

武汉智融科技有限公司 加密专题 EDS