当前位置: 首页 > 面试题库 >

如何在Java中用sha256散列一些字符串?

潘宪
2023-03-14
问题内容

如何在Java中使用sha256对某些字符串进行哈希处理?有人知道有免费的图书馆吗?


问题答案:

SHA-256不是“编码”,而是单向哈希。

你基本上可以将字符串转换为字节(例如使用text.getBytes(StandardCharsets.UTF_8)),然后对字节进行哈希处理。请注意,哈希的结果也将是任意二进制数据,并且如果要在字符串中表示它,则应使用base64或hex … 不要尝试使用String(byte[], String)构造函数。

例如

MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(text.getBytes(StandardCharsets.UTF_8));


 类似资料:
  • 我需要使用RSA方法给图片添加数字签名。为此,我首先需要用SHA256散列这个文件。但是如何做到这一点呢?按照我的理解,我应该得到一个字节hash[]的数组,里面有散列的字节。 例如在c#示例MD5中有这样一种方法:我像这样尝试过,但是我如何获得哈希数组以及如何更改最终哈希的大小?

  • 问题内容: 我需要对密码进行哈希处理以存储在数据库中。如何用Java做到这一点? 我希望使用纯文本密码,添加随机盐,然后将盐和哈希密码存储在数据库中。 然后,当用户想要登录时,我可以使用其提交的密码,从其帐户信息中添加随机盐,对其进行哈希处理,然后查看其是否等同于其帐户信息所存储的哈希密码。 问题答案: 实际上,你可以使用Java运行时内置的工具来执行此操作。Java 6中的SunJCE支持PBK

  • 我正在用java编写一个小程序,根据netflow数据为防火墙创建访问列表。 简而言之,我有一个名为< code > sourceAggregatedFlows 的hashmap,它包含作为键的源IP组(自定义对象)和作为值的目的IP地址 在我的代码中,我需要迭代源IP组,并确定键值中的目标地址是否与我搜索的地址匹配。 我注意到一个问题,有时遍历键集会在值上产生一个nullpointer异常。我已

  • 问题内容: 我在由.NET生成的数据库中存储SHA256用户密码哈希,我需要能够使用Node.js进行检查。唯一的问题是.NET和Node.js为相同的密码创建不同的哈希。 。净: Node.js(使用加密): 我找到了,但是无法弄清楚如何实施他的解决方案。 问题答案: 编辑:您正在C#中使用UTF-16,必须在两种语言中使用相同的编码: Node.js: C#:

  • 问题内容: 我想从我的字符串中删除以下所有字符 “> [],-” 目前我正在这样做。但必须有一个更有效的方法 问题答案: 使用描述要替换的所有字符的正则表达式,以及替换与该正则表达式匹配的所有内容的方法: (编辑:实际上,我认为不应该转义。而且我忘记了将反斜杠加倍,因为它们会被解释两次:一次是由Java编译器,一次是由正则表达式引擎。)

  • 我正在编写一个程序,在密码的末尾连接一个单词,然后计算SHA-256散列。稍后,在十六进制结果的末尾再次添加字,并使用sha256计算新的哈希。 我要把这个重复100遍。每次我想打印散列。 在伪代码中如下所示: 我目前正在通过哈希两次来测试我的代码: 让我们暂时忘记这个连接。 例如无法理解为什么下面两个代码会产生不同的结果: 代码1: 代码二: 我的问题是:每次将字级联并以正确的方式再次编码成字节