关于mdb加密的问题

phuai007 2010-01-08 02:40:14
百度了下,发现mdb不太好加密,如果用本身的密码方法呢,又会被破解。所以我想既然数据库加密不好使,那能不能加密数据而只加密数据呢?写入数据的时候加密,读取的时候解密。这样别人打开数据库的时候都看到的数据都是加密后的,如果直接修改后,程序解密读出来的数据就不能用了,不知道这个想法行不行呢?
...全文
814 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
SC028 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 zhoufoxcn 的回复:]
对于有经验的人微软都没有办法,更何况你我?微软的东西都能破解和绕过验证,你我的东西自然不在话下了。
一般的做法是针对一般人的。[/Quote]
确实如此!
lstc 2010-01-20
  • 打赏
  • 举报
回复
对于数据库加密,除非很有必要,比如军方、政府类,国外通常的做法是采用专用的硬件加密数据库。国内通常的做法是通过某个算法做个变换
小范f-li.cn 2010-01-09
  • 打赏
  • 举报
回复
Jeremiah 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 phuai007 的回复:]
c#的base64加密法,不知道谁能帮我写一个
[/Quote]

你要的加密解密法~
http://www.codeproject.com/KB/cs/base64encdec.aspx
tt1234560 2010-01-09
  • 打赏
  • 举报
回复
12
周公 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 phuai007 的回复:]
百度过资料,很多人说把数据库的头文件修改下,然后在调用的时候先修改回来,完了在修改回去。但是如果是有经验的人,这个方法是不是就没用了?

其实我的目的是防止别人修改数据库直接使用。我写了个工具,只能用于某个地区,但是其他地区的人如果拿了去,如果他们修改了数据库的数据,就能在他们那里用了。所以我就要想个办法让他们即使是修改了数据,也无法使用。因此就想到了数据加密方法,如果对方不知道是用何种方式加密的,那么他直接写入数据库的数据,经过程序解密后就不能用了。
[/Quote]
对于有经验的人微软都没有办法,更何况你我?微软的东西都能破解和绕过验证,你我的东西自然不在话下了。
一般的做法是针对一般人的。
周公 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 mjp1234airen4385 的回复:]
我说一种我以前做过的方法:
把Access的mdb文件的文件头写入一些特殊的字符,
这样的话,别人就不能通过Access打开你的文件了,
当然你自己在打开文件时,也就需要自己的办法处理了。
处理办法:
把文件打开前,先把文件恢复到正常的情况,
然后再打开文件,并且修改文件的扩展名,
使用独占的方法,可以不出现 临时文件。

[/Quote]
我这么做过,打开文件之间将经过特殊处理的文件放到比较隐蔽的位置(如系统临时文件夹),并冠以比较怪的文件后缀,如a.tmp(后缀名对你用OleDb操作文件是没有什么影响的,但是可以防止直接用Access打开),退出程序的时候再对a.tmp进行特殊处理放到应用程序目录下。
mjp1234airen4385 2010-01-09
  • 打赏
  • 举报
回复
我说一种我以前做过的方法:
把Access的mdb文件的文件头写入一些特殊的字符,
这样的话,别人就不能通过Access打开你的文件了,
当然你自己在打开文件时,也就需要自己的办法处理了。
处理办法:
把文件打开前,先把文件恢复到正常的情况,
然后再打开文件,并且修改文件的扩展名,
使用独占的方法,可以不出现 临时文件。
phuai007 2010-01-09
  • 打赏
  • 举报
回复
百度过资料,很多人说把数据库的头文件修改下,然后在调用的时候先修改回来,完了在修改回去。但是如果是有经验的人,这个方法是不是就没用了?

其实我的目的是防止别人修改数据库直接使用。我写了个工具,只能用于某个地区,但是其他地区的人如果拿了去,如果他们修改了数据库的数据,就能在他们那里用了。所以我就要想个办法让他们即使是修改了数据,也无法使用。因此就想到了数据加密方法,如果对方不知道是用何种方式加密的,那么他直接写入数据库的数据,经过程序解密后就不能用了。
特别 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 leek 的回复:]
直接在连接数据库前 解密 二进制 mdb头文件 关闭时在改变
测试过没有问题
[/Quote]
这个没用的,数据库在哪,你连接了,他就在哪生成一个ldb扩展名的文件,这样很容易就发现把数据拿过来了
特别 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 alifriend 的回复:]
写成一个函数,放在数据库里,如果没记错的话,MDB还是可以支持的,好像是用宏配合模块做
然后就select 函数(xxx)这样直接用
[/Quote]
他在C#版块问,估计是用ADO.NET来访问,自定义函数起不了作用
ACCESS里面VBA的宏除了在ACCESS环境中能调用
你用ADO.NET或其他数据访问方式是不能调用的
Lee 2010-01-08
  • 打赏
  • 举报
回复
直接在连接数据库前 解密 二进制 mdb头文件 关闭时在改变
测试过没有问题
hello_lijingpan 2010-01-08
  • 打赏
  • 举报
回复
up up
波导终结者 2010-01-08
  • 打赏
  • 举报
回复
写成一个函数,放在数据库里,如果没记错的话,MDB还是可以支持的,好像是用宏配合模块做
然后就select 函数(xxx)这样直接用
phuai007 2010-01-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sdfkfkd 的回复:]
可以是可以,不过问题是你查询的时候咋办
你不会将所有数据先读出来解密一下,然后再在其中进行查找吧
那么多表联查呢
要知道数据库的作用是什么

至于安全性方面,是硬件及系统管理的职能
[/Quote]

写的是winfrom,用的mdb数据库,数据不多,如果用加密法,也只有按需读取,然后解密。想来也挺麻烦的。
phuai007 2010-01-08
  • 打赏
  • 举报
回复
c#的base64加密法,不知道谁能帮我写一个
特别 2010-01-08
  • 打赏
  • 举报
回复
可以是可以,不过问题是你查询的时候咋办
你不会将所有数据先读出来解密一下,然后再在其中进行查找吧
那么多表联查呢
要知道数据库的作用是什么

至于安全性方面,是硬件及系统管理的职能
波导终结者 2010-01-08
  • 打赏
  • 举报
回复
可以啊,自己用一个可逆算法来加密喽。你可以参考Base64,虽然不算是加密。
phuai007 2010-01-08
  • 打赏
  • 举报
回复
掉字了,是不加密数据库,只加密写入的数据

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧