首页 > 解决方案 > 在 Java 中使用 Google Guava 散列输出小写字符,而在线散列站点输出大写

问题描述

我正在使用 google 的Hashing.

password = Hashing
        .sha256()
        .hashString(input, StandardCharsets.UTF_8)
        .toString();

当我将任何文本传递到该行时,它会散列并输出带有小写字符的所有内容,例如,如果我传递“foo”,则值password变为:

2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae

但是,如果我使用这个站点来散列“foo”,它输出的值是

2C26B46B68FFC68FF99B453C1D30413413422D706483BFA0F98A5E886266E7AE

据我所知,这只是完全相同的密码,除了大写字母而不是小写字母。

是什么导致它们输出不同的值,我怎样才能让番石榴输出大写字母(不只是调用 toUpperCase,除非那真的是唯一的方法)

标签: javahashguavasha256

解决方案


Guava 将结果字符串设为小写的主要原因是因为实现了: com.google.common.hash.HashCode.toString() method

您可以简单地toUpperCase()String类中对结果哈希字符串值调用方法:

password = Hashing
        .sha256()
        .hashString(input, StandardCharsets.UTF_8)
        .toString()
        .toUpperCase();

推荐阅读