浏览代码

borg benchmark cpu: add kdf timings

Note: A KDF shall be expensive to compute to slow down
attacks on your key encryption / your passphrase.
Thomas Waldmann 3 年之前
父节点
当前提交
3fe622dd92
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9 0
      src/borg/archiver.py

+ 9 - 0
src/borg/archiver.py

@@ -611,6 +611,15 @@ class Archiver:
         for spec, func in tests:
             print(f"{spec:<24} {size:<10} {timeit(func, number=100):.3f}s")
 
+        from borg.helpers.passphrase import Passphrase
+        print("KDFs (slow is GOOD, use argon2!) ===============================")
+        count = 5
+        for spec, func in [
+            ("pbkdf2", lambda: Passphrase('mypassphrase').kdf(b'salt'*8, PBKDF2_ITERATIONS, 32)),
+            ("argon2", lambda: Passphrase('mypassphrase').argon2(32, b'salt'*8, 3, 65536, 1, 'id')),
+        ]:
+            print(f"{spec:<24} {count:<10} {timeit(func, number=count):.3f}s")
+
         from borg.compress import CompressionSpec
         print("Compression ====================================================")
         for spec in [