public String get_token(String H){ int len_H = H.length(); StringBuilder str = new StringBuilder(); try { SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");// SecureRandom to get random digit secureRandom.setSeed(H.getBytes()); // 设置种子 for(int i = 0; i < 32; i++) { str.append(H.charAt(secureRandom.nextInt(len_H))); } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); System.out.println("get_token error!"); } return str.toString(); }
时间: 2023-06-13 07:09:01 浏览: 96
Get_access_token.rar
这段代码是一个生成token的方法,它接收一个字符串H作为参数,并返回一个由32个字符组成的字符串。具体实现如下:
1. 获取字符串H的长度len_H
2. 创建一个StringBuilder对象str,用于存储生成的token
3. 创建一个SecureRandom对象secureRandom,用于生成随机数
4. 将字符串H的字节数组作为种子,通过setSeed方法设置到secureRandom对象中
5. 循环32次,每次从字符串H中随机选择一个字符,将其添加到str对象中
6. 返回生成的token
需要注意的是,这里使用了SHA1PRNG算法生成随机数,这是一种基于SHA-1哈希算法的伪随机数生成器,它的输出序列具有良好的随机性和均匀性。此外,如果算法不可用,会抛出NoSuchAlgorithmException异常。
阅读全文