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

如何使用Bouncy Castle从SHA256哈希生成密钥?

程项禹
2023-03-14

我想获取一个SHA256散列,并使用Bouncy 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 recognized”,因此我认为retval应该采用某种特定的格式,并且我不能像现在这样直接传递SHA256Digest输出的字节数组。Bouncy Castle文档似乎没有帮助,或者我只是没有看到相关的部分。

共有1个答案

颛孙子民
2023-03-14

在我的例子中,我想使用SecretKeySpec。下面是一个例子。

SecretKeySpec finalKey = new SecretKeySpec(retval, "RAW");
 类似资料:
  • 我有一个使用BouncyCastle作为安全提供者的应用程序,但是我想切换到另一个直接使用OpenSSL(consecrypt)的应用程序。我遇到的问题是,我正在使用BouncyCastle提供的密钥生成器中的ECDH“密钥”,但在我的其他库中没有类似的密钥生成器。 为了比较这两者,我将使用两种方法解码这些点,输入如下- 为提高可读性而添加换行符 使用BouncyCastle方法- 返回的是。返回

  • 我想向用户展示他们的客户端工具也可能生成的散列,因此我一直在比较在线散列工具。我的问题是关于它们的散列形式,因为奇怪的是,它们是不同的。 在快速搜索之后,我用5进行了测试: http://www.convertstring.com/hash/sha256 http://www.freeformatter.com/sha256-generator.html#ad-output http://onli

  • 与其他Unix一样,AIX只存储用户密码的附加哈希。在过去,它使用DES-crypt,然后使用MD5-crypt(略有不同的版本),这与您在Linux上看到的相同。 通过使用更新版本的AIX和/etc/security/passwd,您可以使用新的SHA1/SHA256/SHA512哈希。它们如下所示(密码“secret”的哈希字符串结果示例): 配置文件 /etc/security/pwdalg

  • 问题内容: 是否有任何方法可以在Java中生成字符串的MD5哈希? 问题答案: 你需要。 调用以获取你可以使用的MD5实例。 通过执行以下操作之一来计算哈希: 将整个输入作为并使用进行一次运算来计算哈希。 订阅通过调用一次块。添加完输入字节后,请使用计算哈希值 。 在返回的是MD5哈希值。

  • 问题内容: 我需要一个Python / C / C ++ / Java实现,可以 暂停散列进步 和 商店 ,在这样一个文件进度的进展是 可恢复 从该文件在稍后阶段。 无论上面列出的是哪种语言编写的,它都应该可以在Python中正常工作。建议您提供它以便与“ hashlib”一起良好地工作,但这不是必需的。同样,如果已经存在这样的事物,那么到此的链接就足够了。 对于一个想法 ,您的实现应该实现什么。

  • 我正在为Web应用程序制作登录系统。要将密码存储在数据库中,我正在使用sha256加密密码,如下所示: 在数据库中,我存储了用户、用户密码和用于散列和验证用户登录的salt。现在,我正在向用户发送包含您的密码的电子邮件,但是当用户收到电子邮件时,由于存储在sha256加密密码中,用户收到的是一个长字符串,而不是用户应该知道的密码。 我的问题是,我可以通过任何方法向您发送实际的用户密码和非密码加密,