在我的代码示例中,我生成了一个随机字节数组,我必须将其用作密码字段的盐。
当我的字节数组中有一个 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;
}