
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发生。
想要对数据库文件进行保密设置,可以通过风奥金甲的数据加密软件来实现,由于数据库的安全漏洞比较多,导致数据库本身泄密的风险也比较高,风奥金甲的数据库加密软甲通过对数据库文件的访问控制技术,可以控制数据库文件的拷贝、导出等二十多项 *** 作,同时数据库文件还可以自己备份。有效的对数据库文件进行保密。提高数据库的安全性。
用SQLCipher进行数据库加密。
SQLite目前已经是比较流行的数据存储 *** 作的API了。Android和iOS系统提供的API中 *** 作数据库默认均采用了SQLite方案。而SQLCipher是基于SQLite的加密数据库存取方案,集成相对比较快捷而且透明,在一定程度上保证了数据的安全。
代码设置:
如果你用的是系统sqlite3的API,则代码基本不用变,因为SQLCipher是基于系统的sqlite3API扩展的;
如果你用的是FMDB,更无需担心,因为FMDB是封装的系统sqlite3API;
唯一需要做的,就是初始化打开数据库文件sqlite3_open之后,紧跟着执行sqlite3_key设置数据库加密的密钥,于是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBasem源码中拷贝这个方法的逻辑,方便调用
给文件加密,你可以在百度上下载超级加密3000 这是一款功能强大的文件和文件夹加密和保护软件。
超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件夹、文件的粉碎删除以及文件夹伪装等功能。
超级加密 3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
超级加密3000还支持加密文件的临时解密,文件加密后,双击加密文件,在d出密码输入对话框输入正确的密码选择确定,该加密文件就处于临时解密,文件使用完毕退出以后,它自动恢复到加密状态,无需再加密。
超级加密3000是一款不可多得的文件加密软件,您可以到百度上搜索超级加密3000给您的文件加密试试看。
以上就是关于请问数据库要如何保密全部的内容,包括:请问数据库要如何保密、数据库文件如何有效的加密、如何在手机上搭建加密数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)