受密碼保護的 Excel 文件
我需要將 Excel 文件發送給某人,通常我會使用加密的電子郵件,但是,這不是這個人的選項。我可以應用到這個文件以獲得良好的保護級別的最小長度密碼是多少?有沒有辦法從數學上計算密碼的強度?
如果您使用本機、非向後兼容的XML 格式(.xlsx),則 Excel 2007 (12.0) 及更高版本預設使用迭代雜湊和 AES 加密,因此弱點肯定是密碼。根據保存文件所需的安全程度,您可以使用簡單的密碼,也可以使用更複雜的字元集和單片語合。如果您使用的是早期版本的 Office 或不使用 .???X 文件格式,則假定它不安全。
加密過程本身與 Windows 加密提供程序一起使用,預設設置通常是安全的;在 CBC 模式下對 4KB 數據塊進行 AES 128 位加密,基於該salt 和 IV 的 OS 隨機數生成器,以及基於 SHA-1 或 SHA-2 的迭代雜湊(至少 50000),具體取決於Office 版本。這些設置可以更改,如果您擔心我建議檢查加密文件,XML 格式將定義使用的加密類型。
為了高安全性,我需要一個 80 位的強密碼。如果您使用預設字母數字 62 字元集中的隨機字元,安全密碼長度為 14 個字元,並且通過正常方式被認為是牢不可破的,那麼 22 個字元將與 AES 的強度相匹配。
如果您的密碼不是隨機字元(而不是實際的單詞或片語),那麼有一些方法可以估計密碼強度,但它們可能非常不准確,通常會告訴您它比實際更強。容易記住的單詞和片語通常更容易破解,密碼破解軟體使用的算法在密碼不是隨機的情況下甚至可以非常有效地破解長密碼。
如果您需要實際單詞,我建議您從字典中選擇至少 6 個隨機單詞,長度至少為 5 個字元。您還可以使用PGP wordlist,它允許您輕鬆地使用隨機數生成器中的字節來獲取它們。您至少需要 10 個單詞才能保證安全,而 16 個單詞才能與 AES 的強度相匹配。如果您知道每個單詞有多少強度(diceware 為 12.9 位),則可以接受其他單詞列表,例如 diceware 列表。