>데이터 베이스 >MySQL 튜토리얼 >基于Access打造安全快速的应用数据程序

基于Access打造安全快速的应用数据程序

WBOY
WBOY원래의
2016-06-07 15:42:581252검색

对于一般的桌面软件来说,使用 Access 来进行工程数据或者其他数据存储是一种很常见的处理方式,然后 Access 加密破解技术满天飞,如何保护你的数据? Access 有两种整体加密的方法: 1 )加密码 2 )访问授权,这里不作为讲解的内容介绍,因为采用这两种方

 

对于一般的桌面软件来说,使用Access来进行工程数据或者其他数据存储是一种很常见的处理方式,然后Access加密破解技术满天飞,如何保护你的数据?

    Access有两种整体加密的方法:1)加密码 2)访问授权,这里不作为讲解的内容介绍,因为采用这两种方式都可以较容易的破解。我这里介绍一种较为简单并且实用的方法。

    首先定位一下解决什么问题?

    使用Access存储数据,解决数据安全问题,要能够支持数据快速查询,能够支持SQL查询。

    简单举个例子:班级的学生得分:

           张三  99

           李四  100

    我要求能够查询学生成绩在 60~100分之间的学生列表,但是我又不希望这个数据别人能够不经过我的系统直接看到(实际应用会有这样的需求),怎么办?  

    这里面有两种需求:模糊名称,不让对方看到。

    我想起了二战时的电报破解的方式,老外们把常用的文章中的字母挨个统计一下,得到字母abc等的比例,按照高比例去替换密电得到明文,早期还真是一对一个准,呵呵。这种方式挺好,你不妨给自己一个对照表,混淆一遍,让破解者先来个甜点,容易点的。这样如果使用SQL查询你只需要转换一下即可,你的数据层抽象一下即可,对应用程序完全透明。

    然后仅仅上述方式,我相信不能满足很多需求,我们知道很多情况下,信息的重要程度是有差别的,比如上面的例子,我认为分数重要,那么把分数藏起来,即使有人拿到,如果看不到分数也很郁闷。

    如何藏?加密?不错,采用加密的方式。针对关键字段进行加密,使用DESRES等算法加密。

    但是加密后如何支持SQL查询?

    我们可以采用扩展函数来处理。这里就介绍了。

    介绍另一种方式:我称之为暗度陈仓,比如我对分数进行DES加密,这个算法加密后的数据是完全没有啥规则的,不具有查询的可能性,我总不能挨个解密,进行数据比对吧?

    这样做,太慢了,如果你的数据较少或者时间要求不高的话,也可以。但是分析一下,可以考虑牺牲一下空间,增加一个Ord字段,在加密前对分数进行排序,这样当查询时可以简单的使用二分查找即可判断出你的数据位置,简单而高效的解决你的数据安全问题。

    关键是思路,搞清楚这个,实现就很简单了。

    基于这个思路,我可以在这上面构建一个数据Schema层,用来封装数据访问,对上层应用完全透明,加密解密完全自动完成。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.