【问题标题】:Java Conversion from byte[] to char[]从 byte[] 到 char[] 的 Java 转换
【发布时间】:2019-11-01 19:42:24
【问题描述】:

我写了一个简单的 sn-p,我尝试在 char 数组中转换(也许)一个字节数组,反之亦然。 网上有很多例子,但这对我来说是最简单的方法。 我需要使用数组而不是字符串,因为它的内容是要管理的 password 字段。

所以我问你,这个 sn-p 正确吗?

private static char[] fromByteToCharArrayConverter(byte[] byteArray){
    ByteBuffer buffer = ByteBuffer.wrap(byteArray);
    clearArray(byteArray);
    CharBuffer charBuffer = Charset.forName("UTF-8").decode(buffer);

    char[] charArray = new char[charBuffer.remaining()];
    charBuffer.get(charArray);  

    return charArray;
}

private static byte[] fromCharToByteArray(char[] charArray){
    CharBuffer charBuffer = CharBuffer.wrap(charArray);
    ByteBuffer byteBuffer = Charset.forName("UTF-8").encode(charBuffer);

    byte[] byteArray = new byte[byteBuffer.remaining()];
    byteBuffer.get(byteArray);

    return byteArray;
}

谢谢

【问题讨论】:

    标签: java arrays bytebuffer java-security charbuffer


    【解决方案1】:

    不,这不起作用(至少)原因如下:

    ByteBuffer buffer = ByteBuffer.wrap(byteArray);  // Wrap the array
    clearArray(byteArray);  // Clear the array -> ByteBuffer cleared too
    

    【讨论】:

    • 好的,谢谢。现在我已经删除了第二行。现在它可以工作了吗?您认为使用这种方式可以找回登录阶段的密码吗?
    • 我得稍后再试。谢谢你。
    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 2011-07-22
    • 2013-04-20
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 2015-04-03
    • 2015-09-06
    相关资源
    最近更新 更多