/* * Copyright 2012-2013 The Haohui Network Corporation */ package com.haohui.common.utils; /** * @project baidamei * @author cevencheng <cevencheng@gmail.com> * @create 2012-11-10 上午1:15:05 */ public class ShortUrlGenerator { /** * @param args */ public static void main(String[] args) { // 长连接: http://tech.sina.com.cn/i/2011-03-23/11285321288.shtml // 新浪解析后的短链接为: http://t.cn/h1jGSC String sLongUrl = "http://tech.sina.com.cn/i/2011-03-23/11285321288.shtml"; // 3BD768E58042156E54626860E241E999 String[] aResult = shortUrl(sLongUrl); // 打印出结果 for (int i = 0; i < aResult.length; i++) { System.out.println("[" + i + "]:::" + aResult[i]); } } public static String[] shortUrl(String url) { // 可以自定义生成 MD5 加密字符传前的混合 KEY String key = "wuguowei"; // 要使用生成 URL 的字符 String[] chars = new String[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; // 对传入网址进行 MD5 加密 // String sMD5EncryptResult = (new CMyEncrypt()).getMD5OfStr(key + url); String sMD5EncryptResult = MD5.md5Encode(key + url); String hex = sMD5EncryptResult; String[] resUrl = new String[4]; for (int i = 0; i < 4; i++) { // 把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算 String sTempSubString = hex.substring(i * 8, i * 8 + 8); // 这里需要使用 long 型来转换,因为 Inteper .parseInt() 只能处理 31 位 , 首位为符号位 , 如果不用 // long ,则会越界 long lHexLong = 0x3FFFFFFF & Long.parseLong(sTempSubString, 16); String outChars = ""; for (int j = 0; j < 6; j++) { // 把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引 long index = 0x0000003D & lHexLong; // 把取得的字符相加 outChars += chars[(int) index]; // 每次循环按位右移 5 位 lHexLong = lHexLong >> 5; } // 把字符串存入对应索引的输出数组 resUrl[i] = outChars; } return resUrl; } }
最近下载更多
111222222 LV1
2023年2月10日
yonikoui LV2
2020年7月21日
ydm_zzp LV2
2019年12月6日
erajiezhang LV1
2019年12月3日
jiazhiheng LV10
2019年11月15日
lixiaoqiandudu LV1
2019年9月11日
三儿123456 LV1
2019年9月10日
kingadmin LV2
2019年8月9日
sz9808 LV1
2019年7月23日
eq8888 LV1
2019年6月21日
最近浏览更多
zl2569837365 LV1
2023年3月14日
111222222 LV1
2023年2月10日
月光yueguang
2022年12月16日
暂无贡献等级
crosa_Don LV18
2022年7月19日
天险无涯 LV15
2022年4月25日
1241312369 LV1
2022年4月8日
488291556 LV5
2021年11月22日
尹恒yingying LV18
2021年8月24日
yinxiaochen
2021年2月25日
暂无贡献等级
joooooo LV5
2020年12月30日