java - 在 Java 中使用 Google Guava 散列输出小写字符,而在线散列站点输出大写
问题描述
我正在使用 google 的Hashing
.
password = Hashing
.sha256()
.hashString(input, StandardCharsets.UTF_8)
.toString();
当我将任何文本传递到该行时,它会散列并输出带有小写字符的所有内容,例如,如果我传递“foo”,则值password
变为:
2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
但是,如果我使用这个站点来散列“foo”,它输出的值是
2C26B46B68FFC68FF99B453C1D30413413422D706483BFA0F98A5E886266E7AE
据我所知,这只是完全相同的密码,除了大写字母而不是小写字母。
是什么导致它们输出不同的值,我怎样才能让番石榴输出大写字母(不只是调用 toUpperCase,除非那真的是唯一的方法)
解决方案
Guava 将结果字符串设为小写的主要原因是因为实现了: com.google.common.hash.HashCode.toString()
method。
您可以简单地toUpperCase()
从String
类中对结果哈希字符串值调用方法:
password = Hashing
.sha256()
.hashString(input, StandardCharsets.UTF_8)
.toString()
.toUpperCase();
推荐阅读
- angular - 发生未处理的异常:集合“@schematics/angular”中未找到原理图“服务”
- unicode - 为什么UTF-8编码会有overlongs的概念?
- sympy - 求解可分微分方程
- java - jenkins maven:共享目标目录
- oracle11g - OBIEE 12c 在 Case Statement 的列中显示图像
- sass - 为什么我的 Webfont 不能加载 gulp4 任务
- python - MongoEngine:删除深度嵌套的 EmbeddedDocument
- google-cloud-platform - 如何将环境变量从 Cloudbuild 传递到 Dockerfile
- flutter - Android 模拟器的清晰度和大小不合适
- apache-kafka - Kafka Streams:我可以为我的处理器订阅具有不同分区数的多个主题吗