关于数据库数据的加密问题!(100分)

  • 主题发起人 主题发起人 honestman
  • 开始时间 开始时间
H

honestman

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在要弄一个人事管理系统,由于里面的数据不多,我不想用SQL Server,想用ACCESS,
但是里面的资料比较敏感,要对数据进行加密,我知道对ACCESS本身加密是没有用的,因此
我要对数据本身进行加密,究竟用哪种算法加密的速度比较快,而且有一定的安全性啊???
 
设置数据库密码不可以么?
如果要加密,数据进进出出,很慢的。
 
ACCESS的密码很不安全,难道真的要改用SQL Server吗???
 
用DBISAM吧, 小型的数据驱动, 格式是其特有的,支持加密。。。
他的QUERY还支持显示查询进度和中止。。。。。。。。。。

不错,做本地的程序

www.51delphi.com
 
我是这样作的:
对access文件加密.即程序开始运行时.用TFileStream读取指定长度的字节是否为,提前写入的
数据,如果是则
begin
数据库没有被非法更改.
用TFileStream读取指定长度的字节(即加密点) 通过自己的算法还原.写回数据库(或生成临时数据库).
连接数据库.
end;
退出时:
删除临时库或(加密数据库)
 
to cch_b:
  有没有介绍DBISAM的资料啊?

to cnaoszh:
  我的数据库中的数据不但不能被人非法改动,连看都不能被人随便看啊!
 
我用一下DBISAM看。
 
我想老兄要加密的主要问题不是数据被非法改动,而是被非法查阅,

我认为对数据本身加密是比较有效果的方法,也就是从数据库中进出的数据都是进行加密过的
 
对,对数据本身进行加密就可以了。
对于已存在的数据你可以编个小程序进行处理嘛。
 
to :cnaoszh

对access文件加密.即程序开始运行时.用TFileStream读取指定长度的字节是否为,提前写入的
数据
怎么判断知道别人一定会修改这个字段呢??
 
对数据加密用什么算法比较好啊?
有现成的控件吗?
DBISAM可以实现吗?

当然,我也要数据库中的资料不能随便被人修改啦!
 
因为,你提前将access文件的文件的指定长度的字节改写为其他内容,所以此时文件肯定不能
打开,即不是一个access文件。所以要打开文件必须修改此处内容为原始值,


 
cnaoszh:
  是否可以贴一下源代码啊???
 
讨论一下:
不知道有没有人见过一个叫《创世2000》的软件,是进销存的,它就用的是Access,
但它的表不能够用Access打开,一打开(Access2000)就提示用户没有打开的权限,然后就
退出了,但我用ADO,BDE联到它的库上时,联接正常的,还可以看到库中的表的表名,但
还是无法看到表的内容。

我想可能是两种方法实现的:
1、Access的用户组功能,但对Access不熟,完整的方法说不上来。
2、用的是较早期的Access的版本,我看了它的文件,好象用的是Access的早期版本。
总之它的库我现在还是打不开,用过n多的密码工具了,都说没密码,但还是不能打开。
我想程序中实现这种安全性应该够了,但不知道它是如何实现的。
我对这个程序感兴趣,主要就是这个原因,如果Access本身就能实现它种安全性的话,
应该就能解决你的问题了。
 
如果是用Access的早期版本用2000打开的时候,2000应该有提示的吧?
而且通常是向下兼容的,应该可以正常显示才是。
用2000看97的表,他只是提示不能修改表的结构,但是内容是可以看的。
 
>>honestman
我之所以说它有可能是早期的Access,是因为它的用户组文件为*.mdw,这是16位Access
的扩展名,而32位的为*.mda(可能记不太清楚了,也有可能反过来)。我用Access打开它的
时候提示"没有打开的权限",未提示早期版权不能编辑。用Access不能打开它,我试过用ADO,
DataBaseDesktop和MSSQL7.0中的倒库工具都能打开它,可以看到表名,但还是看不到表的内容
试图打开表时,又出现上面的提示。

所以我想如果Access本身通过用户组就能实现这种效果的话,一般的安全性问题就不用
考虑了。
但我不知道它具体是如何实现的,所以借宝地与各位探讨一下。
 
你在写入数据前对数据进行一些处理然后再写进数据库,读取的时候在处理回来不就行了
因为处理的方法只有你自己知道,所以写进数据库的数据对别人来说是无意义的,但是这样
读数据的时候会慢些。
 
to 左右手:
  那样做的话,查询和统计都超级麻烦啊!
 
后退
顶部