Как исправить sonar «Убедитесь, что данные хеширования здесь безопасны» проблема безопасности

#java #sonarqube #md5

#java #sonarqube #md5

Вопрос:

После запуска sonar Qube для этого фрагмента кода показана следующая проблема безопасности.

введите описание изображения здесь

 public String createToken(String text) {
        StringBuilder token = new StringBuilder(32);

        try {
            do {
                token.setLength(0);
                MessageDigest md = MessageDigest.getInstance("MD5");
                byte buffer[] = md.digest((text   random.nextInt()).getBytes());
                for (int index = 0; index < buffer.length; index  ) {
                    if (((int) buffer[index] amp; 0xff) < 0x10) {
                        token.append("0");
                    }
                    token.append(Integer.toString(((int) buffer[index] amp; 0xff), 16));
                }
            } while (isTestingToken(token.toString()));
        } catch (NoSuchAlgorithmException nsae) {
            logger.error(nsae.getMessage());
        }
        return token.toString();
    }
  

как исправить эту проблему безопасности.

Комментарии:

1. MD5 небезопасен. Если вам нужен безопасный токен, используйте безопасный alg, например SHA-256. jira.sonarsource.com/browse/RSPEC-4790