【问题标题】:How secure is this VBA password protecting script?这个 VBA 密码保护脚本有多安全?
【发布时间】: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


【解决方案1】:

我要补充一点,取消对宏的保护以访问您的代码非常容易。如果可能的话,您应该考虑实施一个受保护的数据库来存储您的敏感数据并在用户进行适当的身份验证后从那里填充您的 excel 文件。

【讨论】:

  • “取消对宏的保护以访问您的代码非常容易”:请描述如何。使用可以访问 excel 文件但不是 Excel 的软件(例如 OpenOffice 或 LibreOffice)很容易“访问您的代码”。这已经提到了。但据我所知,如果使用强密码不容易解除受保护的 VBA 项目的保护。
  • @AxelRichter 如果您知道如何使用 Google,不难发现如何侵入受保护的 VB 项目。你甚至可以在 Stack Overflow 上阅读它。无论您认为自己的密码有多强,它都会被散列成相当弱的东西,而且在文件中也很容易找到和禁用。
猜你喜欢
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
相关资源
最近更新 更多