java - C# 相当于 Java 的 KDFCounterBytesGenerator(来自 bouncycaSTLe)

标签 java c# bouncycastle

我想将此代码移植到 C#

byte[] result = new byte[length];
byte[] data = ...;
byte[] key = ...;

HMac hMac = new HMac(new SHA256Digest());
KDFCounterBytesGenerator g = new KDFCounterBytesGenerator(hMac);
g.init(new KDFCounterParameters(key, data, 32));
g.generateBytes(result , 0, result .length);

但我在 C# bouncycaSTLe 库中找不到任何等效的类。
有什么建议吗?

编辑: 我从 Java 源代码移植了 KDFCounterBytesGenerator,它工作得很好..

最佳答案

BouncyCastle has an equivalent library for C#它应该包含大多数(如果不是全部)与 Java 版本相同的功能,但有一些细微的语法差异:

enter image description here

您应该能够通过 NuGet 安装它,然后相应地引用它:

// Using statements (for BouncyCastle)
using Org.BouncyCastle.Crypto.Digests;
using Org.BouncyCastle.Crypto.Generators;

// Define your byte[]s
byte[] result = new byte[1];
byte[] data = new byte[2];
byte[] key = new byte[3];

// Build your HMac, Generator and generate your bytes
HMac hMac = new HMac(new Sha256Digest());
Kdf1BytesGenerator g = new Kdf1BytesGenerator(hMac.GetUnderlyingDigest());
g.Init(new Org.BouncyCastle.Crypto.Parameters.KdfParameters(key, data));
g.GenerateBytes(result, 0, result.Length);

关于java - C# 相当于 Java 的 KDFCounterBytesGenerator(来自 bouncycaSTLe),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37030830/

相关文章:

java - 字符串转二进制?

java - 使用 Step Builder 模式创建包含实例变量(列表)的复杂对象

c# - [HttpPost] 和 [WebMethod] 有什么区别?

java - 为 Bouncy CaSTLe 加密创建证书

c# - 在 Bouncy CaSTLe C# 中从私钥获取公钥

java - 堆实际上是堆吗?

c# - Visual Studio 单元测试 Assert.AreEqual 因预期值和实际值相同而失败

c# - C# 中的安全导航运算符?

java - 使用 Java 签署 CSR 不会使用 OpenSSL 进行验证

java - JNDI LDAP 如何解码SSHA密码