<commit_before>/**
 * Auteurs : <NAME> & <NAME> & <NAME> & <NAME>
 * Date    : 16.10.2015
 * Fichier : EncryptionManager.java
 */

package ch.heigvd.amt.moussaraser.web.utils;

import com.sun.org.apache.xerces.internal.impl.dv.util.HexBin;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Classe utilitaire qui gère les différentes opérations de hashage/chiffrement ...
 * (ne contient que des méthodes statiques)
 */
public class EncryptionManager {

    /**
     * Retourne le hash du text passé en paramètre (utilise SHA-256)
     * @param text Texte à hasher
     * @return Le hash
     */
   public static String getHash(String text) {
      try {
         MessageDigest digest = MessageDigest.getInstance("SHA-256");
         digest.reset();
         return HexBin.encode(digest.digest(text.getBytes("UTF-8")));
      } catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) {
         Logger.getLogger(EncryptionManager.class.getName()).log(Level.SEVERE, null, ex);
      }

      return null;
   }

   /**
    * Retourne une clé d'API unique
    * @return Une clé d'api unique
    */
   public static String getAPIKey() {
      return UUID.randomUUID().toString().replaceAll("[\\s\\-()]", "");
   }

}<commit_msg>Remove HexBin proprietary API and replace with String.format()<commit_after>/**
 * Auteurs : <NAME> & <NAME> & <NAME> & <NAME>
 * Date    : 16.10.2015
 * Fichier : EncryptionManager.java
 */

package ch.heigvd.amt.moussaraser.web.utils;

import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Classe utilitaire qui gère les différentes opérations de hashage/chiffrement ...
 * (ne contient que des méthodes statiques)
 */
public class EncryptionManager {

    /**
     * Retourne le hash du text passé en paramètre (utilise SHA-256)
     * @param text Texte à hasher
     * @return Le hash
     */
   public static String getHash(String text) {
      try {
         MessageDigest digest = MessageDigest.getInstance("SHA-256");
         digest.reset();
         
         return String.format("%x", new BigInteger(1, digest.digest(text.getBytes("UTF-8"))));
      } catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) {
         Logger.getLogger(EncryptionManager.class.getName()).log(Level.SEVERE, null, ex);
      }

      return null;
   }

   /**
    * Retourne une clé d'API unique
    * @return Une clé d'api unique
    */
   public static String getAPIKey() {
      return UUID.randomUUID().toString().replaceAll("[\\s\\-()]", "");
   }

}
{'fraction_non_alphanumeric': 0.12731077781653297, 'fraction_numerical': 0.010812696198116497, 'mean_word_length': 3.2052785923753664, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7155360', 'n_tokens_mistral': 919, 'n_tokens_neox': 900, 'n_words': 208}