首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

UUID的引见与使用

2012-10-29 
UUID的介绍与使用/**?*//**?????*??????*?@author?wangdei?????*?在?http://www.bt285.cn?BT下载?????*?ht

UUID的介绍与使用
UUID的引见与使用/**?*//**
UUID的引见与使用?????*?
UUID的引见与使用?????*?@author?wangdei
UUID的引见与使用?????*?在?http://www.bt285.cn?BT下载
UUID的引见与使用?????*?http://www.5a520.cn?小说520?上使用.?
UUID的引见与使用?????*
UUID的引见与使用?????*/
UUID的引见与使用UUID的引见与使用????public?class?RandomGUID?extends?Object?UUID的引见与使用{
UUID的引见与使用????????protected?final?org.apache.commons.logging.Log?logger?=?org.apache.commons.logging.LogFactory
UUID的引见与使用???????????.getLog(getClass());
UUID的引见与使用
UUID的引见与使用????????public?String?valueBeforeMD5?=?"";
UUID的引见与使用????????public?String?valueAfterMD5?=?"";
UUID的引见与使用????????private?static?Random?myRand;
UUID的引见与使用????????private?static?SecureRandom?mySecureRand;
UUID的引见与使用
UUID的引见与使用????????private?static?String?s_id;
UUID的引见与使用????????private?static?final?int?PAD_BELOW?=?0x10;
UUID的引见与使用????????private?static?final?int?TWO_BYTES?=?0xFF;
UUID的引见与使用
UUID的引见与使用UUID的引见与使用????????/**//*
UUID的引见与使用?????????*?Static?block?to?take?care?of?one?time?secureRandom?seed.
UUID的引见与使用?????????*?It?takes?a?few?seconds?to?initialize?SecureRandom.???You?might
UUID的引见与使用?????????*?want?to?consider?removing?this?static?block?or?replacing
UUID的引见与使用?????????*?it?with?a?"time?since?first?loaded"?seed?to?reduce?this?time.
UUID的引见与使用?????????*?This?block?will?run?only?once?per?JVM?instance.
UUID的引见与使用???????????*/
UUID的引见与使用
UUID的引见与使用UUID的引见与使用????????static?UUID的引见与使用{
UUID的引见与使用???????????mySecureRand?=?new?SecureRandom();
UUID的引见与使用???????????long?secureInitializer?=?mySecureRand.nextLong();
UUID的引见与使用???????????myRand?=?new?Random(secureInitializer);
UUID的引见与使用UUID的引见与使用???????????try?UUID的引见与使用{
UUID的引见与使用??????????????s_id?=?InetAddress.getLocalHost().toString();
UUID的引见与使用UUID的引见与使用???????????}?catch?(UnknownHostException?e)?UUID的引见与使用{
UUID的引见与使用??????????????e.printStackTrace();
UUID的引见与使用???????????}
UUID的引见与使用
UUID的引见与使用????????}
UUID的引见与使用
UUID的引见与使用
UUID的引见与使用UUID的引见与使用????????/**//*
UUID的引见与使用?????????*?Default?constructor.???With?no?specification?of?security?option,
UUID的引见与使用?????????*?this?constructor?defaults?to?lower?security,?high?performance.
UUID的引见与使用?????????*/
UUID的引见与使用UUID的引见与使用????????public?RandomGUID()?UUID的引见与使用{
UUID的引见与使用???????????getRandomGUID(false);
UUID的引见与使用????????}
UUID的引见与使用
UUID的引见与使用UUID的引见与使用????????/**//*
UUID的引见与使用?????????*?Constructor?with?security?option.???Setting?secure?true
UUID的引见与使用?????????*?enables?each?random?number?generated?to?be?cryptographically
UUID的引见与使用?????????*?strong.???Secure?false?defaults?to?the?standard?Random?function?seeded
UUID的引见与使用?????????*?with?a?single?cryptographically?strong?random?number.
UUID的引见与使用?????????*/
UUID的引见与使用UUID的引见与使用????????public?RandomGUID(boolean?secure)?UUID的引见与使用{
UUID的引见与使用???????????getRandomGUID(secure);
UUID的引见与使用????????}
UUID的引见与使用
UUID的引见与使用UUID的引见与使用????????/**//*
UUID的引见与使用?????????*?Method?to?generate?the?random?GUID
UUID的引见与使用?????????*/
UUID的引见与使用UUID的引见与使用????????private?void?getRandomGUID(boolean?secure)?UUID的引见与使用{
UUID的引见与使用???????????MessageDigest?md5?=?null;
UUID的引见与使用???????????StringBuffer?sbValueBeforeMD5?=?new?StringBuffer(128);
UUID的引见与使用
UUID的引见与使用UUID的引见与使用???????????try?UUID的引见与使用{
UUID的引见与使用??????????????md5?=?MessageDigest.getInstance("MD5");
UUID的引见与使用UUID的引见与使用???????????}?catch?(NoSuchAlgorithmException?e)?UUID的引见与使用{
UUID的引见与使用??????????????logger.error("Error:?"?+?e);
UUID的引见与使用???????????}
UUID的引见与使用
UUID的引见与使用UUID的引见与使用???????????try?UUID的引见与使用{
UUID的引见与使用??????????????long?time?=?System.currentTimeMillis();
UUID的引见与使用??????????????long?rand?=?0;
UUID的引见与使用
UUID的引见与使用UUID的引见与使用??????????????if?(secure)?UUID的引见与使用{
UUID的引见与使用?????????????????rand?=?mySecureRand.nextLong();
UUID的引见与使用UUID的引见与使用??????????????}?else?UUID的引见与使用{
UUID的引见与使用?????????????????rand?=?myRand.nextLong();
UUID的引见与使用??????????????}
UUID的引见与使用??????????????sbValueBeforeMD5.append(s_id);
UUID的引见与使用??????????????sbValueBeforeMD5.append(":");
UUID的引见与使用??????????????sbValueBeforeMD5.append(Long.toString(time));
UUID的引见与使用??????????????sbValueBeforeMD5.append(":");
UUID的引见与使用??????????????sbValueBeforeMD5.append(Long.toString(rand));
UUID的引见与使用
UUID的引见与使用??????????????valueBeforeMD5?=?sbValueBeforeMD5.toString();
UUID的引见与使用??????????????md5.update(valueBeforeMD5.getBytes());
UUID的引见与使用
UUID的引见与使用??????????????byte[]?array?=?md5.digest();
UUID的引见与使用??????????????StringBuffer?sb?=?new?StringBuffer(32);
UUID的引见与使用UUID的引见与使用??????????????for?(int?j?=?0;?j?<?array.length;?++j)?UUID的引见与使用{
UUID的引见与使用?????????????????int?b?=?array[j]?&?TWO_BYTES;
UUID的引见与使用?????????????????if?(b?<?PAD_BELOW)
UUID的引见与使用????????????????????sb.append('0');
UUID的引见与使用?????????????????sb.append(Integer.toHexString(b));
UUID的引见与使用??????????????}
UUID的引见与使用
UUID的引见与使用??????????????valueAfterMD5?=?sb.toString();
UUID的引见与使用
UUID的引见与使用UUID的引见与使用???????????}?catch?(Exception?e)?UUID的引见与使用{
UUID的引见与使用??????????????logger.error("Error:"?+?e);
UUID的引见与使用???????????}
UUID的引见与使用????????}
UUID的引见与使用
UUID的引见与使用UUID的引见与使用????????/**//*
UUID的引见与使用?????????*?Convert?to?the?standard?format?for?GUID
UUID的引见与使用?????????*?(Useful?for?SQL?Server?UniqueIdentifiers,?etc.)
UUID的引见与使用?????????*?Example:?C2FEEEAC-CFCD-11D1-8B05-00600806D9B6
UUID的引见与使用?????????*/
UUID的引见与使用UUID的引见与使用????????public?String?toString()?UUID的引见与使用{
UUID的引见与使用???????????String?raw?=?valueAfterMD5.toUpperCase();
UUID的引见与使用???????????StringBuffer?sb?=?new?StringBuffer(64);
UUID的引见与使用???????????sb.append(raw.substring(0,?8));
UUID的引见与使用???????????sb.append("-");
UUID的引见与使用???????????sb.append(raw.substring(8,?12));
UUID的引见与使用???????????sb.append("-");
UUID的引见与使用???????????sb.append(raw.substring(12,?16));
UUID的引见与使用???????????sb.append("-");
UUID的引见与使用???????????sb.append(raw.substring(16,?20));
UUID的引见与使用???????????sb.append("-");
UUID的引见与使用???????????sb.append(raw.substring(20));
UUID的引见与使用
UUID的引见与使用???????????return?sb.toString();
UUID的引见与使用????????}
UUID的引见与使用
UUID的引见与使用
UUID的引见与使用??????????//?Demonstraton?and?self?test?of?class
UUID的引见与使用UUID的引见与使用??????????public?static?void?main(String?args[])?UUID的引见与使用{
UUID的引见与使用UUID的引见与使用????????????for?(int?i=0;?i<?100;?i++)?UUID的引见与使用{
UUID的引见与使用??????????????RandomGUID?myGUID?=?new?RandomGUID();
UUID的引见与使用??????????????System.out.println("Seeding?String="?+?myGUID.valueBeforeMD5);
UUID的引见与使用??????????????System.out.println("rawGUID="?+?myGUID.valueAfterMD5);
UUID的引见与使用??????????????System.out.println("RandomGUID="?+?myGUID.toString());
UUID的引见与使用????????????}
UUID的引见与使用??????????}
UUID的引见与使用
UUID的引见与使用
UUID的引见与使用????}

四:UUID在使用二
可以采用一个开源实现:http://jug.safehaus.org/ 或者用jakarta commons下的http://jakarta.apache.org/commons/sandbox/id/
五:UUID在使用三

热点排行