在JAVA中生成UUID字符串的有效方法(不帶破折號的UUID.randomUUID()。toString())
最終基于UUID.java實(shí)現(xiàn)編寫了自己的東西。請注意,我 ,而是以我能想到的最有效的方式 隨機(jī)的32字節(jié)十六進(jìn)制字符串。
實(shí)作import java.security.SecureRandom;import java.util.UUID;public class RandomUtil { // Maxim: copied from UUID implementation :) private static volatile SecureRandom numberGenerator = null; private static final long MSB = 0x8000000000000000L; public static String unique() {SecureRandom ng = numberGenerator;if (ng == null) { numberGenerator = ng = new SecureRandom();}return Long.toHexString(MSB | ng.nextLong()) + Long.toHexString(MSB | ng.nextLong()); } }用法
RandomUtil.unique()測驗(yàn)
我已經(jīng)測試過一些輸入,以確保其正常工作:
public static void main(String[] args) { System.out.println(UUID.randomUUID().toString()); System.out.println(RandomUtil.unique()); System.out.println(); System.out.println(Long.toHexString(0x8000000000000000L |21)); System.out.println(Long.toBinaryString(0x8000000000000000L |21)); System.out.println(Long.toHexString(Long.MAX_VALUE + 1));}解決方法
我想要一個高效的實(shí)用程序來生成唯一的字節(jié)序列。UUID是一個很好的候選人,但是會UUID.randomUUID().toString()生成類似的東西44e128a5-ac7a-4c9a-be4c-224b6bf81b20,但是我更喜歡無破折號的字符串。
我正在尋找一種僅從字母數(shù)字字符(無破折號或任何其他特殊符號)生成隨機(jī)字符串的有效方法。
相關(guān)文章:
1. mac連接阿里云docker集群,已經(jīng)卡了2天了,求問?2. nginx - 微信JSSDK,config執(zhí)行的時候報(bào)錯:invalid signature3. css - jq有無現(xiàn)成函數(shù)改變r(jià)otateX/Y的deg4. PHP類封裝的插入數(shù)據(jù),總是插入不成功,返回false;5. javascript - web移動端 ? 版權(quán)這個字在安卓上默認(rèn)藍(lán)色顏色 怎么解決?6. javascript - 關(guān)于ios微信端瀏覽器網(wǎng)頁的一些問題7. python - JWT, django如何定制關(guān)于用戶的Permission?8. javascript - 微信公眾號網(wǎng)頁使用redux如何管理用戶刷新?9. javascript - 怎么實(shí)現(xiàn)移動端頁面滑動切換,從1可以滑到2 但是不能從2滑回1 這樣的效果呢?10. objective-c - 微信支付的問題
