[英]NumberFormatException in Try-Catch while converting String to Int
[英]NumberFormatException in converting string to byte
我正在嘗試獲取字符串的MD5格式
碼:
fun getEncodedData(data: String): String? {
val MD5 = "MD5"
// Create MD5 Hash
val digest = java.security.MessageDigest
.getInstance(MD5)
digest.update(data.toByte())
val messageDigest = digest.digest()
// Create Hex String
val hexString = StringBuilder()
for (aMessageDigest in messageDigest) {
var h = Integer.toHexString(0xFF and aMessageDigest.toInt())
while (h.length < 2)
h = "0$h"
hexString.append(h)
}
return hexString.toString()
}
在以下位置發生崩潰: digest.update(data.toByte())
。 我得到數字格式異常
輸入我正在傳遞data
: oEXm43
如果我將ex: 11
作為輸入data
的字符串傳遞,則不會崩潰
輸入應該始終是string
integer
,還是可以由number
和characters
的混合體。
您正在嘗試調用采用單個byte
參數的update
方法,並使用toByte
將整個字符串的數字值轉換為單個字節。 這種轉換方法對String
內的非數字值無效。
相反,您可以使用帶有byte[]
參數的update
變體,並使用toByteArray
將String
轉換為字節數組(每個字符一個):
digest.update(data.toByteArray())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.