Gro*_*ppe 4 java security base64 decode char
我需要解码Base64 char数组而不将其转换为String.char数组是密码,出于安全原因,我不允许将其转换为String(此要求是不可协商的).
该java.util.Base64.Decoder.decode方法接受byte[],ByteBuffer和String,但不是char[].
使用String存储敏感数据的安全问题
根据Jim Archer的评论
创建一个由.支持的CharBufferchar[].然后使用Charset.encode将字节缓冲区编码为ByteBuffer.Base64解码器接受ByteBuffer .
private static final java.util.Base64.Decoder BASE_64_DECODER= new java.util.Base64.Decoder();
private static final String ENCODING = "UTF-8";// Use the correct encoding here.
private byte[] decodePassword(char[] password) {
CharBuffer charBuffer = CharBuffer.wrap(password);
ByteBuffer byteBuffer = Charset.forName(ENCODING).encode(charBuffer);
return BASE_64_DECODER.decode(byteBuffer);
}
Run Code Online (Sandbox Code Playgroud)
灵感来自azurefox的评论和答案:https://stackoverflow.com/a/9670279/1361506
| 归档时间: |
|
| 查看次数: |
1630 次 |
| 最近记录: |