数据库透明加密是指通过对数据库中的数据进行加密,实现对敏感数据的保护,同时不影响应用程序的正常访问。它可以让数据库管理员在不需要修改应用程序的情况下,使用基于角色的安全策略来实现对数据库的访问控制和数据加密。
具体来说,数据库透明加密将加密和解密 *** 作集成到了数据库引擎中,这使得应用程序不需要自己处理加解密 *** 作,从而减少了开发难度和代码复杂性。在实现上,数据库透明加密通常包括以下步骤:
配置加密策略:管理员可以定义基于角色的加密策略,例如哪些数据需要加密、加密算法和密钥等。
数据加密:当数据被插入到数据库中时,数据库引擎会对敏感数据进行自动加密。这样,即使黑客攻击成功获取了数据库文件,也无法读取其中存储的敏感信息。
数据解密:当数据被查询时,数据库引擎会自动解密数据,并将结果返回给应用程序。因此,应用程序可以像查询普通未加密的数据一样来 *** 作。
就国内而言,做数据库透明加密产品的公司越来越多,比如:安华金和、天融信、安恒、绿盟等等,相比之下觉得安华金和的产品是做的是最好的,支持的库的类型也是最多的。
为了防止某些别有用心的人从外部访问数据库 **数据库中的用户姓名 密码 xyk号等其他重要信息 在我们创建数据库驱动的解决方案时 我们首先需要考虑的的第一条设计决策就是如何加密存储数据 以此来保证它的安全 免受被他人窥测
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 中)来完成加密 你可以下载一个支持无线的MD DES 以及SHA 哈希的免费版本的应用程序; 其他的加密模型就是在比特深度上进行的 (完全版本是无限的 )在你自己的代码中 你可以使用XP_CRYPT 与ActiveX 控制一样(在受限的免费版本中) 对于ASP程序员来说 一个名为AspEncrypt 的组件提供了一种将高级加密整合到你的代码中的简单方式
lishixinzhi/Article/program/SQLServer/201311/22397
步骤:
1、新建了一个SWING的单屏幕,在SF_POST_QUERY_OF_EACH_ROW()方法中调用Oracle已经建立好的function,对解密字段进行解密之后,再显示屏幕相应的字段上。
2、当进行insert或者update存盘,在SF_POST_DATABASE_COMMIT()方法中,调用加密function进行加密,然后存入数据库。
早些时候是md5后期是sha1都是摘要算法
原密码是无法发到邮箱的
找回密码是产生一个随机新密码的哈希值然后把新密码的哈希值写入数据库,然后把新密码发给用户
用户名一般无需加密
以上就是关于数据库透明加密什么如何实现加解密的全部的内容,包括:数据库透明加密什么如何实现加解密的、教你如何在SQL Server数据库中加密数据、如何对服务器的数据库加密等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)