使用Java中的Google Guava进行哈希处理时以小写字符输出,而在线哈希站点输出则以大写形式

时间:2018-11-30 18:33:04

标签: java hash guava sha256

我正在使用Google的// These flags ensure that the activity can be launched when the screen is locked. Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // to wake up screen PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); wakeLock.acquire(); // to release screen lock KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); keyguardLock.disableKeyguard(); 对Java中的密码进行哈希处理。

Hashing

当我向该行传递任何文本时,它会散列并输出所有带有小写字母的字符,例如,如果我传递“ foo”,则password = Hashing .sha256() .hashString(input, StandardCharsets.UTF_8) .toString(); 的值将变为:

password

但是,如果我使用此site来对“ foo”进行散列,则其输出的值为

2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae

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

是什么原因导致这些输出不同的值,以及如何使番石榴以大写字母输出(不只是调用toUpperCase,除非这确实是唯一的方法)

1 个答案:

答案 0 :(得分:5)

番石榴之所以使用小写形式生成结果字符串的主要原因是因为实现了data test; input col1 col2 $; cards; 2018 D 2018 W ;;;; run; proc sort data=test; by col1 col2; run; proc sort data=test out=new nodupkey; by col1; run;; proc print data=new; run; method

您只需在结果哈希字符串值上从com.google.common.hash.HashCode.toString()类调用toUpperCase()方法:

String