类型: 安全缺陷
在hash加密的过程,缺少必要的步骤,会削弱所生成hash值的强度。
例如:下列代码片段中,缺少MessageDigest.update()的调用,导致创建不基于任何数据的hash值。
MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
//messageDigest.update(inputText.getBytes()); //lack of necessary steps
byte byteBuffer[] = messageDigest.digest();
StringBuilder strHexString = new StringBuilder();
for (int i = 0; i < byteBuffer.length; i++) {
String hex = Integer.toHexString(0xff & byteBuffer[i]);
if (hex.length() == 1) {
strHexString.append('0');
}
strHexString.append(hex);
}
strResult = strHexString.toString();