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