SHA-1 is a weak hash function This product is not supported for your selected
Datadog site . (
).
이 페이지는 아직 영어로 제공되지 않습니다. 번역 작업 중입니다.
현재 번역 프로젝트에 대한 질문이나 피드백이 있으신 경우
언제든지 연락주시기 바랍니다.
이 규칙을 사용해 보세요 ID: java-security/weak-message-digest-sha1
Language: Java
Severity: Warning
Category: Security
CWE : 328
Description SHA-1 may only be used for digital signature generation where specifically allowed by NIST protocol-specific guidance. For all other applications, _SHA-1 shall not be used for digital signature generation. For digital signature verification, _SHA-1 is allowed for legacy-use.
Datadog recommends using the following protocols: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256.
Learn More Non-Compliant Code Examples public class MyClass {
public byte [] test ( String password ) {
byte [] hashValue = DigestUtils . getSha1Digest (). digest ( password . getBytes ());
return hashValue ;
}
}
public class MyClass {
public void myMethod1 () {
MessageDigest md5Digest = MessageDigest . getInstance ( "SHA1" );
md5Digest . update ( password . getBytes ());
byte [] hashValue = md5Digest . digest ();
}
public void myMethod2 () {
MessageDigest md5Digest = java . security . MessageDigest . getInstance ( "SHA1" , "SUN" );
md5Digest . update ( password . getBytes ());
byte [] hashValue = md5Digest . digest ();
}
}
Compliant Code Examples public class MyClass {
public static byte [] getEncryptedPassword ( String password , byte [] salt ) throws NoSuchAlgorithmException , InvalidKeySpecException {
PKCS5S2ParametersGenerator gen = new PKCS5S2ParametersGenerator ( new SHA256Digest ());
gen . init ( password . getBytes ( "UTF-8" ), salt . getBytes (), 4096 );
return (( KeyParameter ) gen . generateDerivedParameters ( 256 )). getKey ();
}
public static byte [] getEncryptedPassword ( String password , byte [] salt ) throws NoSuchAlgorithmException , InvalidKeySpecException {
KeySpec spec = new PBEKeySpec ( password . toCharArray (), salt , 4096 , 256 * 8 );
SecretKeyFactory f = SecretKeyFactory . getInstance ( "PBKDF2WithHmacSHA256" );
return f . generateSecret ( spec ). getEncoded ();
}
}
원활한 통합. Datadog Code Security를 경험해 보세요