0

在我的代码示例中,我生成了一个随机字节数组,我必须将其用作密码字段的盐。

当我的字节数组中有一个 NUL 字符时,就会出现问题。我已经找到了一种使用字符串删除此字符的方法,但出于安全原因,我想使用数组而不是字符串来删除此值。

下面是我的解决方案的片段。在此示例中,我删除了 NUL 出现,但可能是替换它们的不错选择。我该如何更换它?谢谢。

private static byte[] generateSalt() throws UnsupportedEncodingException, NoSuchAlgorithmException{
    final Random RANDOM = new SecureRandom();

    byte[] salt = new byte[12];
    RANDOM.nextBytes(salt);  

    String str = new String(salt, StandardCharsets.UTF_8);
    str.replaceAll("\u0000", "");
    salt = str.getBytes("UTF-8");

    return salt;
}
4

0 回答 0