如何使用 Bouncy Castle 从 SHA256 哈希生成密钥?
How to generate a key from a SHA256 hash using Bouncy Castle?
我想获取一个 SHA256 哈希并使用 Bouncy Castle(实际上是 Spongy Castle)从中生成一个密钥。在下面的代码摘录中,retval 是 SHA256Digest(字节数组)返回的值,finalKey 应该是从 SHA256 哈希生成的密钥。
KeyFactory kf = KeyFactory.getInstance("ECDH", "SC");
X509EncodedKeySpec ks = new X509EncodedKeySpec(retval);
ECPublicKey finalKey = (ECPublicKey)kf.generatePublic(ks);
当我尝试 运行 代码时收到消息 "encoded key spec not recognised",所以我想 retval 应该采用某种特定格式,我不能只传递字节数组直接由 SHA256Digest 输出,就像我正在做的那样。 Bouncy Castle 文档似乎没有帮助,或者我只是没有看到相关部分。
就我而言,我想使用 SecretKeySpec。下面是一个例子。
SecretKeySpec finalKey = new SecretKeySpec(retval, "RAW");
我想获取一个 SHA256 哈希并使用 Bouncy Castle(实际上是 Spongy Castle)从中生成一个密钥。在下面的代码摘录中,retval 是 SHA256Digest(字节数组)返回的值,finalKey 应该是从 SHA256 哈希生成的密钥。
KeyFactory kf = KeyFactory.getInstance("ECDH", "SC");
X509EncodedKeySpec ks = new X509EncodedKeySpec(retval);
ECPublicKey finalKey = (ECPublicKey)kf.generatePublic(ks);
当我尝试 运行 代码时收到消息 "encoded key spec not recognised",所以我想 retval 应该采用某种特定格式,我不能只传递字节数组直接由 SHA256Digest 输出,就像我正在做的那样。 Bouncy Castle 文档似乎没有帮助,或者我只是没有看到相关部分。
就我而言,我想使用 SecretKeySpec。下面是一个例子。
SecretKeySpec finalKey = new SecretKeySpec(retval, "RAW");