以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教access数据源的项目的安全性问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73422)

--  作者:李睿涵
--  发布时间:2015/8/19 10:14:00
--  请教access数据源的项目的安全性问题
小型项目,用access做数据源。
怎样防止客户把程序和数据库拷给其他客户非法使用呢?
我希望正式客户注册后,程序只能在他所在局域网里正常使用。
非法拷给其他客户后,程序不能使用。
希望高手给点建议,谢谢!

--  作者:大红袍
--  发布时间:2015/8/19 10:25:00
--  

 绑定computeId不就行了?取得局域网里所有电脑的computeid或者硬盘号,根据这个生成激活码。不激活就不能用。


--  作者:blsu33
--  发布时间:2015/8/19 10:27:00
--  
access数据源 增加密码 但是使用其他手段还是可以解密,用FOXTABLE 有密码亦可以打开;所以加密数据库 好像也只能做到这了;
FOXTABLE编写的程序 可以加密 “注册机制” 泡泡有个视频 加密程序的
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=49313&replyID=&skin=1
 要么用加密狗加密程序,帮助文档有;
还有socket 局域网使用这个,好像狐爸在研究升级问题
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=28230

我知道就是这些了 听听老师的

--  作者:李睿涵
--  发布时间:2015/8/19 10:32:00
--  
以下是引用大红袍在2015/8/19 10:25:00的发言:

 绑定computeId不就行了?取得局域网里所有电脑的computeid或者硬盘号,根据这个生成激活码。不激活就不能用。

若客户骗我说"新添置了电脑"呢,我又看不到,只能给他激活啊,一样蒙混过关


--  作者:大红袍
--  发布时间:2015/8/19 10:43:00
--  

弄一个激活用户表。

 

程序打开后,获取computeid,如果表里面没有值,就插入一行,同时提示激活,你自己去看数据库的数据不就行了。


--  作者:大红袍
--  发布时间:2015/8/19 10:46:00
--  

再有,别人拷贝数据库和程序也不能直接用啊。

 

连接字符串定死的,别人还要还原一样的环境。


--  作者:大红袍
--  发布时间:2015/8/19 10:51:00
--  
再有。你还可以弄一个项目,连接数据库,定时往里面存入数据,比如当前时间。各个客户端也定时检测这个值,如果时间间隔大于一分钟或几分钟,就退出系统。
--  作者:李睿涵
--  发布时间:2015/8/19 11:04:00
--  
以下是引用大红袍在2015/8/19 10:46:00的发言:

再有,别人拷贝数据库和程序也不能直接用啊。

 

连接字符串定死的,别人还要还原一样的环境。

狐表允许在数据源丢失后 重新指定数据源路径的啊

而且我在写程序的时候,数据源路径和客户使用的路径也不一样,不能关闭重新指定数据源路径功能


--  作者:大红袍
--  发布时间:2015/8/19 11:21:00
--  
以下是引用李睿涵在2015/8/19 11:04:00的发言:

狐表允许在数据源丢失后 重新指定数据源路径的啊

而且我在写程序的时候,数据源路径和客户使用的路径也不一样,不能关闭重新指定数据源路径功能

 

最终解决方案,根据网卡号mac来注册使用。你可以获取局域网里面的网卡啊(如果别人抱台手提电脑过来,再抱走,这种情况无法避免)

 

下面代码,显示局域网内的信息

 

Dim p As new Process()
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.UseShellExecute = False \'关闭Shell的使用
p.StartInfo.RedirectStandardInput = True \'重定向标准输入
p.StartInfo.RedirectStandardOutput = True \'重定向标准输出
p.StartInfo.RedirectStandardError = True \'重定向错误输出
p.StartInfo.CreateNoWindow = True \'设置不显示窗口
p.Start()
p.StandardInput.WriteLine("arp -a")
p.StandardInput.WriteLine("exit")
Dim strRst As String = p.StandardOutput.ReadToEnd()

msgbox(strRst)


--  作者:大红袍
--  发布时间:2015/8/19 11:24:00
--  

 获取本机的mac地址这样写

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=32539&skin=0