注册 登录
编程论坛 VB6论坛

请问,如果程序中需要一个数据库,通常会怎么实现呢?谢谢!

mansohu 发布于 2016-05-14 15:44, 3923 次点击
我做的一个单机程序需要一个数据库,我用一个Access文件放在App的目录里,为了安全把Access文件的后缀去掉,还加了密码。虽然程序可以正常使用,但总觉得这种方法很不专业,请问各位高手,一般大家是怎么解决数据库问题的?谢谢!
17 回复
#2
hjxlj2016-05-14 15:47
这就是专业做法,虽然你的处理方法还有点欠缺。
#3
hjxlj2016-05-14 15:52
首先,你数据库加了密码就说明这是一个标准的作法。其次如果数据库内的数据很重要,不想被别人看到,则在把数据存入数据库前,先将数据加密后再存入数据库。这样,即使别人打开了你的数据库,由于存入数据库的数据都是已经加密的,所以别人也不知道什么意义。
#4
mansohu2016-05-14 16:06
回复 3楼 hjxlj
可我觉得即使没有后缀,稍微有点基础的人也可以用些软件,就知道这是一个 Access 文件啊?
另外请问,给数据加密 是个什么思路?一般会怎么实现呢?
还请指导,谢谢!
#5
hjxlj2016-05-14 17:02
以下是引用mansohu在2016-5-14 16:06:03的发言:

可我觉得即使没有后缀,稍微有点基础的人也可以用些软件,就知道这是一个 Access 文件啊?
另外请问,给数据加密 是个什么思路?一般会怎么实现呢?
还请指导,谢谢!

后缀名不用改,改了也没多大作用。关键是你必须为数据库设置密码,这是第一道防线。然后对数据库内容进行加密也很重要。这样即使你的密码泄露了,别人打开你的数据库也看不到正常的数据,而且别人不知道你的加密算法,自然无法对数据库数据进行解密。至于如何加密,这个就有很多方法了。
#6
xiangyue05102016-05-14 18:05
不知道为啥搞得这么复杂。你都说了是单机,而且还加了密码。个人觉得可以了。
你觉得不安全的话,系统再把密码什么的搞好。
还不行,你就是换成SQL OROCAL都是一样的。关键是你眼里的危险是从什么地方来的。
#7
hjxlj2016-05-14 20:05
以下是引用xiangyue0510在2016-5-14 18:05:47的发言:

不知道为啥搞得这么复杂。你都说了是单机,而且还加了密码。个人觉得可以了。
你觉得不安全的话,系统再把密码什么的搞好。
还不行,你就是换成SQL OROCAL都是一样的。关键是你眼里的危险是从什么地方来的。

不能这么说,数据安全本来就是软件工程中一个重要的研究课题。为了数据安全,采取什么样的措施都不过分。
#8
chen35232016-05-14 21:36
微软的程序都被人破,何况我们是凡人。数据库的记录大多零碎,要结合查询才有用。
#9
ZHRXJR2016-05-14 22:16
任何程序如果使用数据库,均是按照要求使用不同的数据库,你使用Access数据库也没有问题,去掉扩展名不是不可以,别人就不知道这个文件是数据库文件,再设置密码,当然更好了。
数据库一般我们采用SQL数据库,这种数据库如果没有安装SQL软件,并且没有在SQL软件中设置需要的数据库,你的数据库文件是没有办法打开的,即就是他知道扩展名也无能无力,而且这种数据库不一定放在程序目录中,因此,比Access数据库要安全一点。
但对数据库你大可不必那样下功夫,如果你不想让别人使用你的程序,有很多方法可以保护你的程序,比在数据库下功夫要好得多。
#10
风吹过b2016-05-14 23:31
如果数据固定,不需要写入。可以直接内置资源文件。
#11
mansohu2016-05-15 16:31
回复 5楼 hjxlj
请问,您说的加密算法是怎么样的?我还没有涉猎这方面知识,是有相关的软件?还是需要自己开发,如果自己开发应该是个什么思路呢?谢谢!还请指导
#12
mansohu2016-05-15 16:34
回复 9楼 ZHRXJR
我的程序是要给多人使用,并且会安装在多个的电脑上,所以我想对数据库进行一些保护。请问您说的 SQL数据库 是指什么?好像不是Access,是SQL Server 之类的大型数据库吗?谢谢!还请指导
#13
焚心劫2016-05-17 08:49
将数据库加密之后,把程序生成一个安装文件,
#14
csl5912016-09-13 14:52
如果数据固定,不需要写入。可以直接内置资源文件。-->内置的资源文件可是明码的,用二进制软件还是可以查看的。不如直接对数据进行加密。
#15
风吹过b2016-09-13 18:59
以下是引用csl591在2016-9-13 14:52:11的发言:

如果数据固定,不需要写入。可以直接内置资源文件。-->内置的资源文件可是明码的,用二进制软件还是可以查看的。不如直接对数据进行加密。

谁说的内置的资源文件不能放加密后的数据?
内置资源文件,使用命令一条一条的读,读的每一条都解密后再使用。
生成的资源文件,专门写一个程序,负责加密,然后一条一条的把加密的内容添加到资源文件中去。就是复杂一些而以,甚至你可以每一条的密码都不相同。
#16
pengzhanggui2016-09-14 10:04
回复 7楼 hjxlj
数据的资料无非就是数据,数据安全常用的方式是对数据的处理方式,比如加密,楼主只要不把实的资料写入到数据库而是写虚的即可,即通过某种密码转义之后,那么一般情况下除了有密钥的人,谁能看得懂。(PS:别跟我提密钥破解的问题!)
#17
ZHRXJR2016-09-16 11:05
以下是引用mansohu在2016-5-15 16:34:09的发言:

我的程序是要给多人使用,并且会安装在多个的电脑上,所以我想对数据库进行一些保护。请问您说的 SQL数据库 是指什么?好像不是Access,是SQL Server 之类的大型数据库吗?谢谢!还请指导


你原来说:“我做的一个单机程序需要一个数据库”,如果在多台电脑使用,是局域网的用户可以使用SQL Server数据库,如果不是局域网使用SQL Server数据库好像比较麻烦一点。
使用Access数据库对于多台电脑单机使用的程序是不错的选择,如果你需要保护数据库,虽然设定数据库的启动密码是可以的,但现在有大量的Access数据库密码获取软件,可以轻松得到密码,也不是特别安全。
最好是对数据库中数据表中的记录(比较重要的字段)进行加密存储,那么存储的这些字段是经过加密的,即就是打开数据表,这些字段的数据是经过加密的,别人识别不了(似乎是乱码)。
当然你的程序在读取数据时可以首先解码,再显示。
至于加密与解码方法很多,有特别简单的小程序(包括加密与解码二个函数或过程),也有比较专业的加密解码程序,网上很多,你可以搜一下,其实很简单,非常容易实现。
#18
csl5912017-04-17 17:00
可是内置的资源文件可是明文的呀,通过十六进制编辑软件即可查看的。
1