java生成随机数,生成唯一hash值
目录
java.util.Random.RandomStringUtils
常用方法:
可以使用该工具类生成唯一密钥
生成唯一hash值的其他方法:使用md5加密
java.util.Random.RandomStringUtils
有如下方法:
常用方法:
/**
* count 指定创建一个随机串的长度
* letters true表示生成的字符串可以包括字母字符
* numbers true表示生成的字符串可以包含数字字符
*/
public static String random(int count, boolean letters, boolean numbers)
/**
* 使用该方法,输出结果例如:⯾ದ赇㷓밶倇즆ﴔ㊺켜털裳豎䳳ᚐ
*/
public static String random(int count) {
return random(count, false, false);
}
/**
* chars 表示生成的随机串的内容是从传入的chars中选取,chars不可以传入空
*/
public static String random(int count, String chars)
randomAlphabetic
/**
* 产生一个长度为指定的随机字符串的字符数,字符将从拉丁字母(a-z、A-Z的选择)。
* count:创建随机字符串的长度
*/
public static String randomAlphanumeric(int count)
/**
* 创建一个随机字符串,其长度介于minLengthInclusive(包含)和maxLengthExclusive(不包含)之间,字符将从拉丁字母(a-z、A-Z的选择)。
* minLengthInclusive :要生成的字符串的包含最小长度
* maxLengthExclusive :要生成的字符串的包含最大长度
*/
public static String randomAlphanumeric(int minLengthInclusive, int maxLengthExclusive)
randomNumeric
可以使用该工具类生成唯一密钥
比如: String key = RandomStringUtils.random(5, String.valueOf(System.currentTimeMillis()));
但是随机并不意味着唯一。您可以尝试使用UUID生成唯一密钥。
所以在使用RandomStringUtils做到这一点,但是在尝试插入ID之前,还必须对其进行判断它已经存在吗?。
生成唯一hash值的其他方法:使用md5加密
比如:DigestUtils.md5Hex(String.valueOf(System.currentTimeMillis()))
MD5消息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。算法不可逆。
1.使用Spring的DigestUtils
String str = DigestUtils.md5DigestAsHex(TARGET.getBytes());
2.使用三方jar包commons-codec进行加密,记得导入jar包
1)md5加密(不可逆)
String md5Str = DigestUtils.md5Hex(TARGET));
2)SHA1加密(不可逆)
String SHA1Str = DigestUtils.sha1Hex(TARGET);
3)base64加密和解密(可逆)
String base64Str = Base64.encodeBase64String(TARGET.getBytes());
该jar包中也提供解密函数:
String base64DecodeStr = Arrays.toString(Base64.decodeBase64(base64Str));
// 这里decodeBase64(final String base64String)方法返回值是byte[]
// 注意java byte数组里存的是ascii码
// base64加密和解密示例:
String base64Str = Base64.encodeBase64String("fsdjaks".getBytes());
byte[] decodeBytes = Base64.decodeBase64(base64Str)
String decodeStr = Arrays.toString(decodeBytes);
输出结果:base64Str值为ZnNkamFrcw==decodeStr结果为[102, 115, 100, 106, 97, 107, 115]// 如果要将decode结果输出为正常字符串
String normalDecodeStr=new String(decodeBytes,"ascii"); //第二个参数指定编码方式
输出结果:normalDecodeStr的值为fsdjaks
java生成随机数,生成唯一hash值相关推荐
- php随机数字符串,php生成随机数/生成随机字符串的方法小结【5种方法】
php生成随机数/生成随机字符串的方法小结[5种方法],字符串,随机数,在线,数组,字符 php生成随机数/生成随机字符串的方法小结[5种方法] 易采站长站,站长之家为您整理了php生成随机数/生成随 ...
- php 包含字母随机数_php生成随机数 生成随机字符串的5种方法
有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成. 第一种:mt_rand() function GetRandStr($length){ //字符组合 $str ...
- Java中一种计算Hash值的算法——SHA-256
SHA-256:一种哈希函数 对于任意长度的消息,SHA-256都会产生一个256bit长的哈希值,称作消息摘要.这个摘要相当于是个长度为32个字节的数组,通常用一个长度为64的十六进制字符串来表示. ...
- java获取指定字符的hash值
public static void main(String[] args) {System.out.println(getHashValueByStr("gelinwangzijuge&q ...
- java获取文件hash值_怎样用java获取到文件的hash值?
public static byte[] createChecksum(String filename) throws Exception { InputStream fis = new FileIn ...
- Rainbow Crack在windows生成彩虹表并破解Hash值
Windows生成彩虹表并破解Hash值 前言:因为自己也在这上面遇到很多问题,希望看到这篇博客的学习人可以顺利生成彩虹表. 彩虹表的格式 rtgen hash_algorithm charset p ...
- mysql默认值是随机数_mysql生成指定位数的随机数及批量生成随机数的方法
1. 先介绍几个常用的 mysql 函数 rand() 随机生成 0~1 之间的小数(0<1) ceiling 向上取整 floor 向下取整 2. 生成随机数 -- 生成 3 ...
- 如何生成安全的密码 Hash:MD5, SHA, PBKDF2, BCrypt
. 一.前言 密码 Hash 值的产生是将用户所提供的密码通过使用一定的算法计算后得到的加密字符序列.在 Java 中提供很多被证明能有效保证密码安全的 Hash 算法实现,我将在这篇文章中讨论其中的 ...
- 如何生成安全的密码 Hash:MD5, SHA, PBKDF2, BCrypt 示例
文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 . 一.前言 密码 Hash 值的产生是将用户所提供的密码通过使用一定的算法计算后得到的加密字 ...
最新文章
- 2019展望:超级智能崛起,人类智慧与机器智能将深度融合
- 2021甘肃高考艺考成绩查询,2021甘肃艺术统考/联考成绩查询时间及入口
- Tools: geos 使用指南
- cmd cd 无法切换目录_一分钟掌握cmd基础操作,告别鼠标
- mysql分区表mycat_MySQL 中间件之Mycat垂直分表配置
- leetcode--983.最低票价
- select 下拉框的选中项的change事件
- CCF201312-1 出现次数最多的数(100分)
- oracle弱口令攻击
- Pandas中DataFrame数据的常用操作(创建、转置、查询、排序、缺失、运算、合并、追加、修改、分组、压缩等)
- win7 与xp 互联步骤
- android dropbox切换账户,输入用户名和密码到Dropbox用Calablash登录webview android
- python中的箭头符号
- 地图定位技术揭秘(三)
- win10安装wsl步骤
- 高频量化交易软件主要的功能?
- python求极限_数学——函数极限知识以及sympy库的limit
- 【JAVA】解决mapper绑定异常:nested exception is org.apache.ibatis.binding.BindingException:
- html如何实现左右布局,前端中的左右布局实现
- SQL语句,根据时间段统计