【发布时间】:2016-07-22 23:54:26
【问题描述】:
我正在 microsoft excel 上构建一个工作表,它将处理敏感的业务数据。工作表将放置在 USB 驱动器上,并且必须不断地从一个地方移动到另一个地方。因此,我在 excel VBA 中创建了一个功能来启用/禁用密码保护。这是它的工作原理。
一个名为设置的页面是 xlVeryHidden,在一个单元格中包含用户密码,页面中的另一个单元格包含单词 yes 或 no。根据天气密码保护是否被激活。当用户第一次打开工作簿时,所有工作表都是 xlVeryHidden,除了一个包含继续按钮的工作表,他们单击运行宏的按钮以检查设置表中的天气单词是或否。视情况而定,系统会提示他们登录或取消隐藏所有工作表。
登录代码如下:
If PasswordTextbox.Text = ThisWorkbook.Sheets("Settings").Range("J5").Value Then
之后,所有工作表都将被取消隐藏。否则它会给出一个错误消息框。
VBA 代码编辑器也将受到 excels 默认系统的保护。
我在这里问的是:我的系统相当安全吗?对于普通计算机用户来说,这很难破解吗?
提前致谢:)
【问题讨论】:
-
一点都不安全 - 可能足以防止随意偷看,但不会阻止真正想看的人。
-
解除保护可能需要不到一分钟的时间。使用暴力宏可能不到一小时,具体取决于密码的长度。
-
您可以存储使用 md5 或类似自定义函数散列的密码,使其在文件中不清晰。您也可以使用密码对文件进行 7zip 压缩以获得额外层,但上面提到它不是安全的,破解不方便,如果您使用未存储在文件中的密码加密单元格中的数据,这将是安全
-
我同意@Slai 关于蛮力的看法。我自己构建了一个宏来攻击其他受保护的工作表,通常在 5 分钟内完成。
-
为什么不使用Protect Workbook>Encrypt with Password?这将加密整个文件。所以需要密码解密才能读取文件内容。这将是最安全的。
标签: vba excel if-statement