2

I have a byte array which contains a string encoded with some character set, which is some sensitive data (like password). I would like to convert it into character array, but without using String (i.e. NOT something like (new String(bytes, charset)).toCharArray()), because this is sensitive data. Is it possible? i.e. I would like to have something like:

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

1 Answer 1

2

Found a way:

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

More strict version:

public static char[] convertByteArrayToCharArray(byte[] data, Charset charset) {
    charset.newDecoder()
       .onMalformedInput(CodingErrorAction.REPORT)
       .onUnmappableCharacter(CodingErrorAction.REPORT)
       .decode(data); 
}
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.