代码之家  ›  专栏  ›  技术社区  ›  KovBal

.NET的文件加密库

  •  3
  • KovBal  · 技术社区  · 16 年前

    我在找一个.NET下的文件加密库。 它需要能够寻找 所以 CryptoStream 是不可能的。(我知道它继承了Seek方法,但它没有实现。)

    我需要查找,因为我的应用程序以非顺序处理大文件。我也是 需要同时读写文件 .

    我知道大多数时候 CBC 用于文件加密,但无法使用它进行查找(和写入)。但不知怎的全磁盘加密软件 TrueCrypt BitLocker 设法像那样使用它。( 编辑:TrueCrypt不再使用CBC,他们转移到 LRW 然后到 XTS . 我的意思是这是可能的。 )

    这是一个爱好项目,所以我对免费图书馆感兴趣。另外,它是否只支持.NET 4也无关紧要。

    编辑 : Bouncy Castle 不好是因为 循环流 不能像.NET的加密流那样搜索。

    3 回复  |  直到 12 年前
        1
  •  1
  •   Shiraz Bhaiji    16 年前

    一个选择可能是bouncy castle,它是免费的:

    http://www.bouncycastle.org/csharp/

    我不确定你想如何在你的项目中寻找。但它至少有一些功能可以解决seek的问题:

    “X509CertificateParser/X509CrlParser现在在不支持查找的流中处理多个证书/crl”

        2
  •  0
  •   caf    16 年前

    在CBC模式下寻找并不是不可能的——事实上CBC模式是微不足道的。要解密块i,您只需要知道密钥、加密块C_i和先前的加密块C_i-1。您当然不必解密之前的整个流。

        3
  •  0
  •   CodesInChaos    12 年前

    如果您使用AES,那么XTS模式是一个不错的选择。这就是TrueCrypt的用途。但是XTS的实现并不简单。

    一个简单的方法是使用Threefish:它是一个可调整的块密码,因此您可以简单地使用块索引作为调整,然后以类似ECB的方式加密数据。缺点是三条鱼不是标准的。这应该比较容易实现。