title: Generating a string with java.security.SecureRandom that only includes letters and numbers
body: <p>I want to generate a string (I call this a "salt" but it's probably not the right term) consisting of only letters and numbers by means of <code>java.security.SecureRandom</code>.</p>
  
  <pre><code>Random ran = new SecureRandom();
  byte [] salt = new byte[32];
  ran.nextBytes(salt);
  String str = new String(salt,"utf-8");
  System.out.println(str);
  </code></pre>
  
  <p>The result is bad because it includes things like "?#....." which I don't want.</p>
  
  <p>How can I generate a random string that like like <code>9c021ac3d11381d9fb2a56b59495f66e</code> ?</p>