2017-10-06 56 views
1

我試圖用科特林產生在我的Android代碼的字符串的MD5 ..轉換字節數組字符串在科特林

 val md5 = MessageDigest.getInstance("MD5") 
     val hash = md5.digest(queryToSign.toByteArray(Charset.defaultCharset())).toString() 

但是這給了我:

[B @ 118072

有什麼想法?

回答

3

解決吧..使用的BigInteger

 val md5 = MessageDigest.getInstance("MD5") 
     val hash = BigInteger(1, md5.digest(queryToSign.toByteArray(Charset.defaultCharset()))).toString(16) 
+0

以其它方式使用十六進制轉換器(例如Apache的抄本)會做的伎倆 – s1m0nw1

+0

給大家:雖然這是一個非常前瞻性的解決方案,要知道所有的前導零會修剪。在計算散列值的情況下,這一點很重要。所以還必須有一個代碼來檢查結果的長度,並在需要時用零填充。例如,'val correctedHash =「0」.repeat(bytes.size * 2 - hash.length)+ hash' –

相關問題