在Java中如何将某个字符串与sha256进行散列?

推荐答案

SHA-256不是"编码"-它是单向散列.

基本上,您可以将字符串转换为字节(例如使用text.getBytes(StandardCharsets.UTF_8)),然后对字节进行散列.请注意,散列的结果将是任意的二进制数据,如果你想用字符串表示,你应该用use base64或十六进制...don'ttry 使用String(byte[], String)构造函数.

例如

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

Java相关问答推荐

如何用Java表示C++类以通过FFI使用?

在Java 11+中,我们可以在不编译多个文件的情况下以某种方式执行吗?

获取拦截器内部的IP地址

表格栏上的事件过滤器在PFA中不起作用

我的scala文件失败了Scala.g4 ANTLR语法

Java 8中的多个字段和计数

不推荐使用的Environment.getExternalStorageDirectory().getAbsolutePath()返回的值不同于新的getExternalFilesDir(空)?

通过移动一个类解决了潜在的StubbingProblem.它怎麽工作?

JOOQ中的子查询使用的是默认方言,而不是配置的方言

Arrays.hashcode(int[])为不同的元素提供相同的散列

Regex以查找不包含捕获组的行

在Eclipse中可以使用外部字体吗?

在Java中将对象&转换为&q;HashMap(&Q)

协同 routine 似乎并不比JVM线程占用更少的资源

将BlockingQueue+守护程序线程替换为执行器

无法在IntStream上应用Collectors.groupingBy

Kotlin-仅替换字符串中最后一个给定的字符串

如何在Spring Boot Auth服务器上正确配置CORS?

让标签占用JavaFX中HBox的所有可用空间

没有Google Play服务,Firebase Auth无法工作