Kotlin

2017-10-06 8 views
1

で文字列に変換バイト配列私はkotlinを使用して、私のアンドロイドコード内の文字列のMD5を生成しようとしています。..Kotlin

 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

そうでなければ、誰ものためにトリック – s1m0nw1

+0

を行いますヘックス・コンバータ(例えばapacheのコーデックス)を使用して:それはかなり見栄えのソリューションをしているが、すべての先行ゼロがされるので注意してくださいTRIMMED。ハッシュを計算する場合は重要です。したがって、結果の長さをチェックし、必要に応じてゼロで終了するコードも必要です。たとえば、 'val correctedHash =" 0 ".repeat(bytes.size * 2 - hash.length)+ hash' –