数据库加密方法有哪些,数据库中用户密码通常用什么加密方式
来源:整理 编辑:黑码技术 2024-03-29 08:13:02
本文目录一览
1,数据库中用户密码通常用什么加密方式
早些时候是md5 后期是sha1 都是摘要算法原密码是无法发到邮箱的找回密码是产生一个随机新密码的哈希值然后把新密码的哈希值写入数据库, 然后把新密码发给用户.用户名一般无需加密md5加密,是不可逆的,但现在可以通过比较加密后的串来得到密码,所以一般的做法是先做一次或多次的位移,再做md5加密,这样相对安全一些。自己的系统要验证,也是先将用户输入的密码,做相应的位移,再做md5加密,比较最后结果。3des加密很常用 而且算法很多 自己可以随意改 自己设置个加密密钥就行用户名没必要加密 因为你这不是银行的数据库感觉差不多就行,如果想万全的话,还是要在数据库的严密性上来做文章。。
2,现在数据库加密的方式有哪几种
数据库加密的方式从最早到现在有4种技术,首先是前置代理加密技术,该技术的思路是在数据库之前增加一道安全代理服务,所有访问数据库的行为都必须经过该安全代理服务,在此服务中实现如数据加解密、存取控制等安全策略,安全代理服务通过数据库的访问接口实现数据存储。安全代理服务存在于客户端应用与数据库存储引擎之间,负责完成数据的加解密工作,加密数据存储在安全代理服务中。然后是应用加密技术,该技术是应用系统通过加密API对敏感数据进行加密,将加密数据存储到数据库的底层文件中;在进行数据检索时,将密文数据取回到客户端,再进行解密,应用系统自行管理密钥体系。其次是文件系统加解密技术,该技术不与数据库自身原理融合,只是对数据存储的载体从操作系统或文件系统层面进行加解密。这种技术通过在操作系统中植入具有一定入侵性的“钩子”进程,在数据存储文件被打开的时候进行解密动作,在数据落地的时候执行加密动作,具备基础加解密能力的同时,能够根据操作系统用户或者访问文件的进程ID进行基本的访问权限控制。最后后置代理技术,该技术是使用“视图”+“触发器”+“扩展索引”+“外部调用”的方式实现数据加密,同时保证应用完全透明。核心思想是充分利用数据库自身提供的应用定制扩展能力,分别使用其触发器扩展能力、索引扩展能力、自定义函数扩展能力以及视图等技术来满足数据存储加密,加密后数据检索,对应用无缝透明等核心需求。安华金和的加密技术在国内是唯一支持TDE的数据库加密产品厂商。 
3,请问数据库要如何保密
1、思路:在需要加密字段的表中,增加对应的加密后的密文字段。例如表users中有字段salary需要加密,则增加新字段encrypted存放加密后的内容,而原salary的内容设为0值或者删除。2、具体来说:编写PL/SQL代码,主要是产生密钥和提供加密解密的function,其中加密解密的function调用Oracle8i提供的数据加密包:dbms_obfuscation_toolkit。从而使数据得到加解密。3、测试案例: (1)、新建了一个SWING的单屏幕,在SF_POST_QUERY_OF_EACH_ROW()方法中调用Oracle已经建立好的function,对解密字段进行解密之后,再显示屏幕相应的字段上。 (2)、当进行insert或者update存盘,在SF_POST_DATABASE_COMMIT()方法中,调用加密function进行加密,然后存入数据库。4、遇到的问题: (1)查询的时候,由于在SF_POST_QUERY_OF_EACH_ROW()方法中解密后,又往屏幕中字段进行了set动作,导致屏幕的状态改变,最终导致屏幕存盘后会出现数据错误。 (2)这样做的效率比较低,因为每次都要在Java程序里调用解密,存盘时调用加密。Oracle规定,不能对trigger的触发表进行操作。还有,如果用自治事务去实现,同样在update动作的时候会造成dead lock发生。你用的什么数据库? 要是放在服务器上,你只能保证服务器安全,其他没方法。怕被拷走,就做物理隔离! 再花钱买台电脑,分隔开!在需要加密字段的表中,增加对应的加密后的密文字段。例如表users中有字段salary需要加密,则增加新字段encrypted存放加密后的内容,而原salary的内容设为0值或者删除。具体来说:编写pl/sql代码,主要是产生密钥和提供加密解密的function,其中加密解密的function调用oracle8i提供的数据加密包:dbms_obfuscation_toolkit。从而使数据得到加解密。步骤:1、新建了一个swing的单屏幕,在sf_post_query_of_each_row()方法中调用oracle已经建立好的function,对解密字段进行解密之后,再显示屏幕相应的字段上。2、当进行insert或者update存盘,在sf_post_database_commit()方法中,调用加密function进行加密,然后存入数据库。常见问题:1、查询的时候,由于在sf_post_query_of_each_row()方法中解密后,又往屏幕中字段进行了set动作,导致屏幕的状态改变,最终导致屏幕存盘后会出现数据错误。2、这样做的效率比较低,因为每次都要在java程序里调用解密,存盘时调用加密。你可以将数据库所在的文件夹设置管理权限,这样除了你的密钥,任何人都打不开这个文件夹。不好的是,一旦密钥丢失,你自己也会打不开它的。用专门的一台电脑当做数据库服务器,这样就不用担心数据被拷贝了。当然还得做好防盗措施。
文章TAG:
数据 数据库 加密 加密方法 数据库加密方法有哪些