Java token avec Secure Random

import java.security.SecureRandom;
import java.util.Base64;

public class Main {

  public static void main(String[] args) {
    System.out.println(getTokenBase64());
    System.out.println(getToken("abcdefghijklmnopqrstuvwxyz0123456789", 16));
  }

  private static String getTokenBase64() {
    //Base 64 pour encoder
    Base64.Encoder base64Encoder = Base64.getUrlEncoder();
    SecureRandom secureRandom = new SecureRandom();

    // 12 bytes pour avoir 10
    byte[] bytesArray = new byte[12];
    secureRandom.nextBytes(bytesArray);
    return base64Encoder.encodeToString(bytesArray);
  }

  private static String getToken(String allowChars, int length) {
    SecureRandom secureRandom = new SecureRandom();
    String token = "";
    // Pour la longueur du token
    for (int i = 0; i < length; i++) {
      int randomNumber = secureRandom.nextInt(allowChars.length());
      // Prend un character au hasard dans la liste
      token += allowChars.substring(randomNumber, randomNumber + 1);
    }
    return token;
  }

}

Commentaires