【问题标题】:Convert a given string to a byteArrays将给定的字符串转换为 byteArrays
【发布时间】:2020-07-19 10:31:36
【问题描述】:

我有一个加密密钥,我想将此给定的字符串转换为字节数组,以便进行文件解密过程。

示例

val string = "0123456789012345678901234567890123456789012345678901234567890123"
// what i want to have is something like this :
val result = byteArrayOf(0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03)

【问题讨论】:

  • 我在您的代码中看不到任何逻辑。我以为你会写val result= byteArrayOf("0123456789012345678901234567890123456789012345678901234567890123")
  • 我将加密密钥作为字符串接收,我必须将其转换为 byteArrays 以进行解密操作......但是当我说转换时,我的意思是我们必须在 byteArray 中的给定字符串中具有相同的值,如您所见在我的例子中......
  • 那么你想知道的是如何实现一个函数 byteArrayOf 像val byteArray= byteArrayOf("0123456789012345678901234567890123456789012345678901234567890123") byteArray 的字节获取值0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x01,0x02,0x03)
  • 不,我想要的就像我上面写的那样...... byteArrayOf(0x00....
  • byteArrayOf 需要一些字节,问题是我拥有的是一个字符串。所以我必须生成这个字节。显然它们必须是十六进制格式..

标签: android arrays string kotlin data-structures


【解决方案1】:

瞧:

private fun hexStringToByteArray(s: String): ByteArray? {
    val len = s.length
    val data = ByteArray(len / 2)
    var i = 0
    while (i < len) {
        data[i / 2] = ((Character.digit(s[i], 16) shl 4) +
                Character.digit(s[i + 1], 16)).toByte()
        i += 2
    }
    return data
}

从这里https://stackoverflow.com/a/18714790/5015227

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2018-01-17
    • 2019-12-15
    • 1970-01-01
    • 2019-10-10
    相关资源
    最近更新 更多