我发现在Excel 2010(和2007)中,当您尝试选择更安全的加密类型时,它似乎会默默地忽略您的设置,让您得到一个可以在几秒钟内破解的文件,例如decryptum。
这不适用于默认使用AES加密的新文件格式,只适用于保存为97-2003格式的情况。
这是我在工作簿中创建的宏:
很容易通过省略FileFormat参数使Excel 2003以这些加密设置正确输出。
这不适用于默认使用AES加密的新文件格式,只适用于保存为97-2003格式的情况。
这是我在工作簿中创建的宏:
Sub enc()
Me.SetPasswordEncryptionOptions _
PasswordEncryptionProvider:= "Microsoft Strong Cryptographic Provider", _
PasswordEncryptionAlgorithm:= "RC4", _
PasswordEncryptionKeyLength:=128, _
PasswordEncryptionFileProperties:=True
Me.SaveAs _
Filename:="encryption_test.xls", _
FileFormat:=xlExcel8, _
Password:="password"
End Sub
很容易通过省略FileFormat参数使Excel 2003以这些加密设置正确输出。
Sub enc()
Me.SetPasswordEncryptionOptions _
PasswordEncryptionProvider:= "Microsoft Strong Cryptographic Provider", _
PasswordEncryptionAlgorithm:= "RC4", _
PasswordEncryptionKeyLength:=128, _
PasswordEncryptionFileProperties:=True
Me.SaveAs _
Filename:="encryption_test.xls", _
Password:="password"
End Sub
我希望decryptum能像我预期的那样解密,但它失败了。
我做错了什么还是这是一个错误?如果这是一个错误,我该如何解决?
我已经添加了一种Excel 2010的解决方案,但我希望有更简单的方法,最好适用于2007版本。
FileFormat:=xlExcel8
)。 - Todd Main