Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

这样能100%确保ACCESS表和代码受到保护嘛?

taozhiyu  发表于:2012-10-10 22:14:24  
复制

参考了accesssoft和微软MSDN的文章,写了下面的代码,请问这样能100%确保ACCESS表和代码受到保护嘛?
Function ChangeProperty(strPropName As String, _
    varPropType As Variant, _
    varPropValue As Variant) As Integer

    Dim dbs As Object, prp As Variant
    Const conPropNotFoundError = 3270

    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    ChangeProperty = True

Change_Bye:
    Exit Function

Change_Err:
    If Err = conPropNotFoundError Then ' Property not found.
        Set prp = dbs.CreateProperty(strPropName, _
            varPropType, varPropValue)
        dbs.Properties.Append prp
        Resume Next
    Else
        ' Unknown error.
        ChangeProperty = False
        Resume Change_Bye
    End If
End Function

Private Sub Form_Load()
    
    Const DB_Boolean As Long = 1
    
    If CurrentDb.Properties("AllowBypassKey") = True Then
        ChangeProperty "AllowBypassKey", DB_Boolean, False
        Application.Quit
    Else
        '正常启动
    End If
End Sub


Private Sub Form_Unload(Cancel As Integer)
    Const DB_Boolean As Long = 1
    
    ChangeProperty "AllowBypassKey", DB_Boolean, False
End Sub

 

Top
在水一方 发表于:2012-10-10 23:05:48
不能

taozhiyu 发表于:2012-10-10 23:26:47
怎么解决呢?

taozhiyu 发表于:2012-10-10 23:44:26
经过在水一方开导,看来ACCESS不安全,不能保护程序员的成果啊. 所以最后一招, 第一次按Shift进入数据库就删除表和数据. 不过提前告知用户不要如此操作.呵呵. 多花功夫做好功能开发吧 ~不做无用功

沈军 发表于:2012-10-11 22:12:19

表可以用另类的隐藏方法将表隐藏,隐藏后的表用查询、窗体、报表等方式都找不到这个它,数据库可设密码也可不设密码,存贮数据的文件做后台数据库,在后台数据库文件里做一个简单的窗体,在窗体里添加自制的密码确认功能,再用程序来控制表的显示与隐藏,然后编译它生成MDE文件。用这种方法保护数据我目前还没有发现有人能破解,因此相对比较安全,除非你删除这个数据库文件。

在做前台数据库的整个过程尽量少用生成的查询和宏,这两者在前台数据库中运行容易被人查看和利用,因此对于数据而言不安全,最后做好窗体和报表时在工程选项中加入密码保护,也可以制作成MDE文件。

 



dbaseIIIer 发表于:2012-10-14 03:41:52

制作MDE已经是 98%安全的了。

MDE是可以经过破解器简单获得窗体和报表,

代码就难破解,但是还是可以的,因为知道代码的一段就能破解所有代码的了,只是需要时间,

耐心的去google查查英语网站就有的了!

 

不过mde已经比exe保密多的了!exe无论加多少个壳,都可以跟踪出来的。

 

如果可以转的话,还是用Access2007吧! accde暂时还没有工具做这样的事。

还可以加上使用 vba Obfuscator 来混淆代码的!

 

对于关键的数据(尤其是权限密码),需要做个算法加密,记得是至少以 记录ID号(或uuid) 和 更新时间 两个字段值 加上数据本身 来进行加密和解密的。

算法可以参考 base64(可反向解密), md5(不能反向解密) 并用非标准参数,防破解的能力强,运行速度又快,开发现成又简单!

由于代码已经很难破解,那就实现了数据就拿到了加密数据,复制记录,都没办法还原密码的。

此方法适用于 任何远程或本地 任何品牌的数据库的。

 



总记录:5篇  页次:1/1 9 1 :