【问题标题】:Convert string encoded as byte array into character array without using java.lang.String将编码为字节数组的字符串转换为字符数组而不使用 java.lang.String
【发布时间】:2021-04-11 19:26:41
【问题描述】:

我有一个字节数组,其中包含一个用某些字符集编码的字符串,这是一些敏感数据(如密码)。我想将其转换为字符数组,但不使用String(即不是(new String(bytes, charset)).toCharArray()之类的东西),因为这是敏感数据。是否可以?即我想要类似的东西:

public static char[] convertByteArrayToCharArray(byte[] data, Charset charset) {
....
}

【问题讨论】:

    标签: java arrays string character-encoding


    【解决方案1】:

    找到了一条路:

    public static char[] convertByteArrayToCharArray(byte[] data, Charset charset) {
        return charset.decode(ByteBuffer.wrap(data));
    }
    
    

    更严格的版本:

    public static char[] convertByteArrayToCharArray(byte[] data, Charset charset) {
        charset.newDecoder()
           .onMalformedInput(CodingErrorAction.REPORT)
           .onUnmappableCharacter(CodingErrorAction.REPORT)
           .decode(data); 
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-15
      • 2010-12-27
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多