繁体   English   中英

将字节数组正确解码为char数组

[英]Proper decoding of byte array to char array

通过消除字符串存储(最终存储在堆中)来使密码处理更加安全。 我有以下现有代码:

String pw = new String(buffer, 0, len, "UTF-32LE");

我想出了:

Charset charSet = Charset.forName("UTF-32LE");
ByteBuffer byteBuffer = ByteBuffer.wrap(buffer, 0, len);
CharBuffer charBuffer = charSet.decode(byteBuffer);
charArray = new char[charBuffer.length()];
for (int i = 0; i < charBuffer.length(); ++i)
{
    charArray[i] = charBuffer.charAt(i);
}

请注意,我们支持许多不同的语言,因此我不确定如何最好地全面测试这种方法。

  1. 这个对吗? 这种方法有警告吗?
  2. 这是最好的方法还是我缺少一些简单的方法?

感谢您的任何反馈或建议。

我不确定您要达到什么目标。 起初,我以为您想摆脱存储在堆中的数据,但是后来我看到了字符数组。 在Java中,每个数组都是一个对象,每个对象都存储在堆中。 参考变量可以放在堆栈上,但它们只是处理程序,而不是对象本身。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM