三九宝宝网宝宝百科宝宝知识

SQLServer在SQLServer数据库中加密数据

12月04日 编辑 39baobao.com

[《与大数据同行》学习体会]正规教育中,反馈随处可见。在一个人的求学生涯中,会积累数以百计的此类数据点,我们将其称为 小数据 ,这些数据代表的是学生在教师眼中的学业表现。我们越来越依赖于这种反馈,将其...+阅读

为了防止某些别有用心的人从外部访问数据库,盗取数据库中的用户姓名、密码、信用卡号等其他重要信息,在我们创建数据库驱动的解决方案时,我们首先需要考虑的的第一条设计决策就是如何加密存储数据,以此来保证它的安全,免受被他人窥测。

SQL Server中有哪一种支持可以用于加密对象和数据?从一开始就讨论一下SQL Server欠缺什么是明智的,或者是对于SQL Server中的加密部分你不应该做什么。

首先,SQL Server有两个内置的密码函数——即,pwdencrypt() 和 pwdpare()。同时,还有两个SQL Server用来管理密码哈希的没有正式记录的函数:pwdencrypt() 将密码哈希过后进行存储; pwdpare()将提供的字符串与哈希后的字符串进行比较。不幸的是,这个哈希函数不是非常安全,它可以通过字典攻击算法被破解(类似命令行应用程序!)。

这些函数随着SQL Server的版本发展而不断进行修改,这也是另一个没有使用它们的原因。早期版本的SQL Server对密码进行的哈希,在后来的版本中无法解密,所以如果你依赖一个版本中的函数,那么当升级的时候,所有你的加密数据就都没有用了,除非你可以首先对其解密——这也就违背了加密的最初的目的。

第二,你可能会尝试去创建一个针对你的数据库的自制的加密解决方案,但是有以下三个理由说明你不要这样做:

除非你是加密专家,否则胡乱编写的加密系统只会提供非常低级的价值不高的保护。新鲜的是,单向密码哈希或者 "ROTx "形式的加密几乎不需要费事就可以被轻松打败。

如果由于你自己的能力的缺乏而导致加密被破解,那么你的数据就完蛋了。你需要将所有的东西进行没有加密的备份,是吗?(即使你加密了,那里有没有安全漏洞?)

当市面上提供有专业级别的,具有工业强度的加密解决方案的时候,你就不值得花费时间去自己做。把你的时间用于构建一个好的,坚固的数据库,而不是再重新发明一次车轮。

那么,什么才是好的加密数据的方式呢?

对于新手,微软提供了一个自己生成的加密解决方案,CryptoAPI 。对于轻量级的加密,军用级别的安全就不在考虑范围之内,它具有相对容易实现的优势:管理员可以安装一个名为CAPI 的ActiveX 控制,它可以在T-SQL存储过程中提供CryptoAPI 功能。CAPI 支持各种类型的双向加密和单向哈希算法,所以管理员可以挑选最适合应用程序的问题的部分。

如果你对使用微软的解决方案不感兴趣,还有一些很好的第三方的方案可以使用。一家名为ActiveCrypt 的软件有限责任公司制造了XP_CRYPT ,它是SQL Server的插件,可以在视图、程序和触发器中通过扩展存储过程和用户自定义函数(在SQL Server 2000中)来完成加密。你可以下载一个支持无线的MD5,DES ,以及SHA1哈希的免费版本的应用程序; 其他的加密模型就是在比特深度上进行的。(完全版本是无限的。)在你自己的代码中,你可以使用XP_CRYPT,与ActiveX 控制一样(在受限的免费版本中)。对于ASP程序员来说,一个名为AspEncrypt 的组件提供了一种将高级加密整合到你的代码中的简单方式。

Examda提示: 对数据库文件自身进行加密或者提供传输层上的安全保护怎么样?对于前者,大家可以在Windows系统中持续使用加密文件系统。然而,你必须保存加密密钥的备份,在出现问题的时候,这个数据有可能会丢失。对于后者,有IPSec和SQL Server自己的SSL加密,都是SQL Server和Windows自带的大家的主要精力应该放在避免以明文存储敏感数据,因为从数据库中抽取没有加密的数据同样是最容易受到攻击的薄弱环节。

以下为关联文档:

让专家和数据告诉你:补充维生素A对中国宝宝有多重要!我国儿童维生素A缺乏现状根据近五年的地域性流行病学调查数据显示,我国各地区亚临床和可疑维生素A缺乏率仍居高不下,即使是北京、江苏、重庆等较为发达的地区,都无法避免维生...

e学习大数据云课堂在90课时信息技术培训初次接触e学习,了解萨尔曼 可汗的可汗学院及可汗的故事到到去年的翻转课堂、微视频的制作,平时也在密切关注数字时代教学的变革,可以说互联网时代的教学变...

在excle表格中如何合并两列数据2然后,我们选择合并情况项里面的第一项格子,在里面输入=c3d3因为数据一是在c列的第三行,数据二是在d列的第三行。3输完之后,我们直接点击enter键就可以显示出来了。4我们选中...

在Excle2007中如何针对特定数据新建查询2找到新建查询按钮,点击新建查询。3点击从文件中的从工作薄选项。4选择需要查询的工作薄文件地址。5接下来点击关闭并上载。6这样excle针对特定数据新建查询就顺利完成了...

面试谈薪企业最关心的三个数据通常在面试谈薪时,企业会关心和薪资相关的三个数据:现在的薪资、要求的底线薪资、期望薪资。但很多人其实混淆了底线薪资和期望薪资。那么问题来了,如果给不到你的期望薪资的工...

HR只关心三个数据,搞不清楚别想有面试!通常在面试谈薪时,企业会关心和薪资相关的三个数据:现在的薪资、要求的底线薪资、期望薪资。但很多人其实混淆了底线薪资和期望薪资。那么问题来了,如果给不到你的期望薪资的工...

数据结构教程第二十九课静态查找表教学目的: 掌握查找的基本概念,顺序表查找的性能分析 教学重点: 查找的基本概念 教学难点: 顺序表查找的性能分析 授课内容: 一、查找的基本概念 查找表: 是由同一类型的数据元素(...

数据结构教程第二十三课二叉树的存储结构教学目的: 掌握二叉树的两种存储结构 教学重点: 链式存储结构 教学难点: 链式存储二叉树的基本操作 授课内容: 一、复习二叉树的定义 二叉树的基本特征:每个结点的度不大于2。 二...

VB6.0使用ADO对象连接数据1. 定义连接对象 Global DBconnect As New ADODB.Connection 2. 执行连接语句 If DBconnect.State = adStateOpen And Not IsEmpty(adStateOpen) Then DBconnect.Close 连接OD...

推荐阅读
图文推荐