首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将字符串转换为字节的NumberFormatException

将字符串转换为字节的NumberFormatException
EN

Stack Overflow用户
提问于 2019-01-10 07:09:41
回答 1查看 407关注 0票数 0

我正在尝试获取字符串的MD5格式

代码:

代码语言:javascript
代码运行次数:0
运行
复制
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())有一次崩溃。我得到数字格式异常

传递给dataoEXm43的输入

如果我将ex:11作为输入data的字符串传递,则不会发生崩溃。

输入应该总是integerstring中,还是可以是numbercharacters的混合物。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-10 07:22:40

您正在尝试调用接受单个update参数的byte方法,并使用toByte将整个字符串的数值转换为单个字节。这种转换方法在String内部的非数值上失败.

相反,您可以使用带有update参数的byte[]变体,并使用toByteArrayString转换为字节数组(每个字符一个)。

代码语言:javascript
代码运行次数:0
运行
复制
digest.update(data.toByteArray())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54123507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档