当前位置: 首页 > 知识库问答 >
问题:

使用BouncyCastle的ChaCha进行文件加密

宰父智敏
2023-03-14

我希望使用ChaCha加密几个文件,所以我想知道使用chacha20poly1305是否合适。这个类似乎是为TLS设计的,那么这是否意味着它不是为文件加密设计的呢?内部的方法,例如encodeplaintext()decodeciphertext()似乎可以处理文本而不是二进制文件。

如果是这样的话,有没有人知道如何使用BC的ChaCha实现来进行文件加密?

共有1个答案

孟杰
2023-03-14

您可以简单地使用Chacha20Poly1305类引用的ChachaEngine类。引擎类包含各种密码类的实现。

除此之外,JCA还提供了一个更高级别的API来处理各种密码。因此您还可以使用:

Security.addProvider(new BouncyCastleProvider());
Cipher c = Cipher.getInstance("ChaCha");

之后,普通的JavaCipherInputStreamCipherOutputStream将变得可用。

注意,使用Poly1305确实提供了额外的身份验证。这通常不是文件加密的要求,但它确实提供了一个额外的安全层。如果您想要经过身份验证的加密,但您无法确定如何进行,那么请另问一个问题。

 类似资料:
  • 问题内容: 我正在尝试使用Java中的BouncyCastle使用ECC算法对某些内容进行加密。但是我对BouncyCastle库的说法例外:无法转换为。我理解的是,所产生的公共密钥是不能在java的使用方法。有人可以告诉我如何将其转换为公钥或X509规范,以便可以将其用于加密。 这是我尝试过的代码 我也尝试将公钥转换为X509EncodedSpec,但出现相同的异常 我得到的例外是 编辑 基于注

  • 刚开始使用PGP,我正在尝试通过C#控制台应用程序加密一个文件。在我的研究中,似乎BouncyCastle是一个更受欢迎的应用。我找到了下面的文章,它看起来很好,除了我只有公钥。http://burnignorance.com/c-coding-tips/pgp-encryption-decryption-in-c/

  • 我正在尝试编写一个加密文件,它将使用gpg解密,并将以增量方式写入行,而不是在一个块中。我已经在GnuPG中生成了密钥,并且正在使用公钥加密。下面是我正在使用的加密方法: 我有一个小的原型测试类来使用这种方法: 我怎样才能修改这段代码,使它既能加密两行,又能让GnuPG解密它们呢?

  • 问题内容: 我对 密码学还很陌生 ,我正在使用它来 加密 密码并将其存储在数据库中。对于 加密, 我正在使用算法,并且希望对密码加盐以防止再次发生字典攻击。 任何帮助,将不胜感激。 问题答案: 我建议为此使用基于密码的密钥派生函数,而不是基本的哈希函数。像这样:

  • 问题内容: 我正在尝试使用Library和Library 发送加密的邮件: 这是我编写的代码,或者我遵循了一个教程: 当我调试应用程序时,唯一的应用程序在以下行崩溃: 这是我从达尔维克获得的唯一错误消息: 我所有的外部文件都位于该文件夹下。 有人知道为什么会这样吗?有没有人成功使用SMIME / X.509加密邮件?还是有更简单的方法来做到这一点? 问题答案: 如果我了解您要实现的目标,不仅是对M

  • 我对密码学相当陌生,我正在使用加密密码并将其存储在数据库中。对于加密,我使用算法,并且我想对密码加盐,以防止它对字典攻击。 如有任何帮助,我们将不胜感激。