Foxtable(狐表)用户栏目专家坐堂 → [求助]局域网内使用加密狗


  共有6577人关注过本帖树形打印复制链接

主题:[求助]局域网内使用加密狗

帅哥哟,离线,有人找我吗?
chnfo
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2199 积分:18075 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/5/7 23:02:00 [只看该作者]

我担心用开发版发布的系统,在一个服务端运行产生的文件,被其他人在另一个局域网里不装UKEY也照用,那不就都免费了?
[此贴子已经被作者于2014-5-7 23:04:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hanxuntx
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2014/5/7 23:29:00 [只看该作者]

放心不会被破解的。

你用服务器ComputerID,复杂一点你可以再添加服务器的ip地址,网卡地址等信息生成加密字符串

这个字符串存在狐表的内部表中,并且定时更新。

如果把这个狐表服务端的程序拷贝到别的电脑上,那么生成的加密字符串就变了

所以别人即使把这个文件拷贝到别的电脑上也是不行的


 回到顶部
帅哥哟,离线,有人找我吗?
hanxuntx
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2014/5/7 23:30:00 [只看该作者]

而且,你的狐表服务端的程序,可以检测是否有官方的Ukey,没有的话直接不能运行

别人考走服务端也打不开


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2199 积分:18075 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/5/7 23:47:00 [只看该作者]

看来这样倒是一个解决思路,我再整理下哈
1、客户端可以任意安装发布的系统,但必须连上服务端的数据库才能运行,如果连不上数据库,客户端系统会自动退出
2、服务端运行一个狐表开发的工具,在检测到UKEY之后,会生成一个文件A
3、客户端运行程序,连上数据库,且能检测到这个文件A,才可以登录

问题:
这个文件A,是放在服务端的,客户端没有啊。

如果在局域网1中插了UKEY,生成了文件A

那用户如果把文件A拷到局域网2中,局域网2里的客户端能连上数据库,而且能检测到文件A,不就能直接运行了吗?



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/8 9:59:00 [只看该作者]

 文件A要放在共享文件夹下。

 

 文件A需要变化的,可以根据不同时间生成不同的内容,简单的:获取时间,将时间加密,客户端解密时间,判断和本机/服务器/网络相差是否在一个范围,比如 几分钟。

 

 这样,插上ukey,就能不断生成一个不同的文件。别人拷贝这个文件,就有了时间限制。


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2199 积分:18075 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/6/29 20:05:00 [只看该作者]

出现一个新问题,我在服务端插上UKEY,然后生成一个配置文件,然后客户端去解析这个配置文件。

.NET Framework 版本:2.0.50727.5477
Foxtable 版本:2014.5.12.1
错误所在事件:窗口,Server,Start,Click  ‘这个Start按钮就是定时生成配置文件的按钮
详细错误信息:
文件“\\主机名称\配置文件存放位置\SerVer.txt”正由另一进程使用,因此该进程无法访问该文件。 ‘这个SerVer.txt就是配置文件,客户端可以解析之。

这是神马状况?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/29 20:08:00 [只看该作者]

 你是如何生成文件的?又是如何读取文件的?代码贴出来。


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2199 积分:18075 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/7/6 12:28:00 [只看该作者]

用服务端程序生成配置文件:
Dim cs As String = e.Form.Controls("TextBox3").Value   ‘这个TextBox3存放的是共享数据库的完整路径
If Filesys.FileExists(cs) Then '如果找到了数据库名
    DataTables("数据库完整路径表").DataRows(0)("数据库路径") = cs   ’建了一个内部数据库表,用来存放完整路径
    Dim PW As String = EncryptText( "主机ID:" & ComputerId & vbcrlf & "主机时间:" &  now ,"加密字符1","加密字符2")
    Dim IP As String = cs.SubString(0,cs.LastIndexOf("\") )
    FileSys.WriteAllText(IP & "\服务端配置文件.txt", PW , False)   
End If

客户端读取配置文件时:
Dim ipFile As String = ProjectPath & "客户端配置文件.txt"  ’这个客户端配置文件记录的两部分信息,一是主机的ID,二是上面的共享数据库的完整路径

If Filesys.FileExists(ipFile) Then
    Dim IP,CID As String
    Dim SQLDate As String = FileSys.ReadAllText(ipFile)
    For Each m As String In SQLDate.Split(vbcrlf)
        If m.Contains("共享数据库完整路径:") Then
            IP =  m.SubString(m.IndexOf(":")+1)
        End If
        If m.Contains("主机ID:") Then
            CID =  m.SubString(m.IndexOf(":")+1)  ‘从配置文件中读取主机ID
        End If
    Next
    
    Dim f As String = IP.SubString(0,IP.LastIndexOf("\"))  ‘找到共享地址,服务端配置文件、共享数据库都放在这个目录下
    '读取指定文件的值
    If FileSys.FileExists(f & "\服务端配置文件.txt") Then
        Dim s As String = FileSys.ReadAllText(f & "\服务端配置文件.txt")
        Dim PW As String =  DecryptText( s,"加密字符1","加密字符2")
        Dim ServerT As Date
        Dim ServerCID As String
        For Each m As String In pw.Split(vbcrlf)
            If m.Contains("主机时间:") Then
                ServerT  = CDate( m.SubString(m.IndexOf(":")+1))
            End If
            If m.Contains("主机ID:") Then
                ServerCID =  m.SubString(m.IndexOf(":")+1)
            End If
        Next
        
        If CurUserID > "" Then  '这个CurUserID是全局代码,登录时赋值
            If (Date.Now - ServerT).TotalSeconds > 600 Or CID <> ServerCID  Then  ’如果主机客户机时间相差10分钟或者客户机解析的主机ID不同,就弹出窗口
                If Forms("提示窗口").Opened = False Then
                    Forms("提示窗口").Open()
                End If
            Else
                Forms("提示窗口").Close()
            End If
        End If
    Else
        If Forms("提示窗口").Opened = False Then
            Forms("提示窗口").Open()
        End If
    End If
Else
    If Forms("提示窗口").Opened = False Then
        Forms("提示窗口").Open()
    End If
End If
[此贴子已经被作者于2014-7-6 12:30:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/6 14:12:00 [只看该作者]

 应该是小概率事件,你加入try catch 处理一下应该可以了

 

http://www.foxtable.com/help/topics/2070.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2199 积分:18075 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2014/7/6 16:52:00 [只看该作者]

也不是,这个出现多次了,弹出窗口的内容
这里的server.txt就是服务器配置文件
是不是服务器在写的时候,与客户端在读的时间非常巧合地一致导致的


图片点击可在新窗口打开查看此主题相关图片如下:进程在使用中.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-7-6 16:53:37编辑过]

 回到顶部
总数 44 上一页 1 2 3 4 5 下一页