1
我必須從Android客戶端程序發送哈希字符串到Java服務器。使用matches()返回false的base64比較返回false
客戶端:
byte[] encodedID = MessageDigest.getInstance("SHA-256").digest(id.getBytes("UTF-8"));
String encodedID64 = Base64.encodeToString(encodedID,Base64.NO_WRAP);
服務器:
byte[] hashbytes = logInfo.getString(LoginHash).getBytes();
String logHash = new String(hashbytes,"UTF-8");
的字符串存儲在服務器上。當應用程序關閉時,網絡任務的後臺服務將重新啓動。它從共享首選項讀取Base64編碼的散列,並將其發送到服務器以再次登錄。但是,調用matches()來比較存儲的字符串和接收到的值會返回false。
這是接收什麼,存儲的值是這樣的:
Stored:"WuYnLw/vKlrrzEWaetqcbqPMcu+cQ0hvnV0Yf5kiIdE="
Given :"WuYnLw/vKlrrzEWaetqcbqPMcu+cQ0hvnV0Yf5kiIdE="
我想這是一個編碼的問題,但我無法弄清楚如何解決它。
謝謝!完全忘了正則表達式。 –