java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java

原文:仿新浪微博
短链接地址生成工具 ShortUrlGenerator.java

源代码下载地址:http://www.zuidaima.com/share/1550463378934784.htm

仿新浪微博 短链接地址生成工具

ShortUrlGenerator.java

String sLongUrl = "http://www.zuidaima.com/share/1550463378934784.htm";
// 3BD768E58042156E54626860E241E999

String[] aResult = shortUrl(sLongUrl);

// 打印出结果

for (int i = 0; i < aResult.length; i++) {

System.out.println("[" + i + "]:::" + aResult[i]);

}

///// 控制台输出如下: [0]:::7nUFJn [1]:::f6Zzy2 [2]:::j6jmQb [3]:::2eAjea

/*
 *    Copyright 2012-2013 The Haohui Network Corporation
 */
package com.zuidaima.haohui.common.utils;

/**
 * @project baidamei
 * @author cevencheng <[email protected]> www.zuidaima.com
 * @create 2012-11-10 上午1:15:05
 */
public class ShortUrlGenerator {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 长连接: http://www.zuidaima.com/share/1550463378934784.htm
		// 新浪解析后的短链接为: http://t.cn/h1jGSC
		String sLongUrl = "http://www.zuidaima.com/share/1550463378934784.htm"; // 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;
	}
}
时间: 2024-08-08 05:22:25

java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java的相关文章

http://t.cn/xxx的短链接如何生成?(附15款新浪短链接生成器)

短链接已经广泛应用于各种场景,电商,微信,短信等等.那么今天给大家推荐15款t.cn.url.cn的短链接短网址在线生成工具,都是我从市面数十款短链接短网址生成工具里面挑选的最为简便,最为稳定的短链接短网址生成工具.废话不多! 1,青梅短网址 网站链接:http://qingmeidwz.cn 青梅短网址是发展的比较成熟的一款在线短网址短链接生成工具,一直是本着“简 单,高效,自由,稳定”的理念.不管是同行业还是用户的口中都有着非常好的口碑. 青梅短网址最大的优点就和他们所倡导的理念一样:“简单

微博短链接的生成算法(Java版本)

最近看到微博的短链接真是很火啊,新浪.腾讯.搜狐等微博网站都加入了短链接的功能.之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少.短链接的主要职责就是把原始链接很长的地址压缩成只有6 个字母的短链接地址,当我们点击这6 个字母的链接后,我们又可以跳转到原始链接地址. 开始以为短链接是按照某种算法把原始链接压缩为短链接,再根据算法从短链接反算成原始链接的.后来尝试了下压缩算法(gzip 压缩算法),发现对于url 这种字符串越是压缩,长度就越长

java高仿微博日期显示格式化,日期辅助工具类

原文:java高仿微博日期显示格式化,日期辅助工具类 源代码下载地址:http://www.zuidaima.com/share/1550463377902592.htm 仿新浪微博日期格式化工具类: 例如: 1. 刚刚 2. xx分钟前 3. hh小时前 4. 今天 HH:mm 5. 昨天 HH:mm 6. 前天 HH:mm 7. 上个月 yyyy-MM-dd HH:mm 8. 去年 yyyy-MM-dd HH:mm 9. 前年 yyyy-MM-dd HH:mm 今天写的代码,结构还很粗糙,只

暴走系列--高仿淘宝收货地址

谁说咱们攻城狮不能写出既幽默又能懂的博客呢,本人想推出一系列博文,可以给刚接触Android开发的做一个参考,也可以与接触Android已久的各路大神比较一下,本人喜欢交流,如果有写得不好的地方,欢迎大家指出.如果有更好的效果或者功能,希望大家多多指点,互相学习可以共同进步. 说了这么多,现在进入今天的猪蹄,<<暴走系列--高仿淘宝收货地址>>,有网购经验的同学应该对这个很熟悉,在淘宝的Android客户端里面,有一个功能是设置收货地址,不清楚的同学可以自己下载个淘宝客户端,自己添

高仿新浪微博,写了个小demo

运用新浪开发的微博数据接口,花了两天时间高仿新浪iphone手机客户端的写了新特性和首页,感觉运用到的知识点还是挺多的,尤其实在框架的搭建和代码的封装上,直接决定了系统的重用性和扩展性,案例视图:                            共享几个案例中用到的小技巧: (1) 重写按钮的样式    一般按钮中的文字和图片都是左右排, 那么如何按照自己的想法,任意的控制按钮中元素的排列呢? 1 #import "XHcenterBtn.h" 2 #import "U

短链接转换在线工具

短链接转换在线工具,即可在线将长网址压缩为短网址的工具,而且生成的短网址是可以点击跳转到原网址的页面.短链接转换在线工具,被广泛的使用在营销推广中,是每个推广人员的必备推广工具之一.推广人员会使用短链接转换在线工具,将需要推广的着陆页面链接缩短为一个或多个短链接.这些短链接更利于营销推广,例如可以减少短信营销中链接占用过多字数增加推广成本,可以减少QQ.微信推广中被屏蔽的风险等.短链接转换在线工具的使用,解决了营销推广中很多的痛点.推广人员使用短链接转换在线工具,不但能完成短链接的生成,还能查看

使用基于 PHP 的开源软件 YOURLS 搭建短链接地址服务

使用基于 PHP 的开源软件 YOURLS搭建 系统配置 php7.1+mysql5.7+nginx 下载源代码 git clone https://github.com/YOURLS/YOURLS.gitcd YOURLS mv user/config-sample.php user/config.php 修改config.php里面的配置参数,依据自己的环境自行修改 define( 'YOURLS_DB_USER', 'root' );define( 'YOURLS_DB_PASS', '1

使用 swift3.0高仿新浪微博

项目地址:https://github.com/SummerHH/swift3.0WeBo 使用 swift3.0 高仿微博,目前以实现的功能有,添加访客视图,用户信息授权,首页数据展示(支持正文中连接匹配,@匹配)支持照片浏览,大图浏览,保存图片到相册本地, 实现发布微博,发微博添加照片,发送Emoticon表情等功能, 先看下项目整体框架 项目使用 MVC 框架,但是在写的过程中也用到了 MVVM设计模式

java清除所有微博短链接

java实现微博短链接清除,利用正则,目前只支持微博短链接格式为"http://域名/字母或数字8位以内"的链接格式,现在基本通用 如果链接有多个,返回结果中会有多出的空格,请注意! 实现代码: 1.测试版       public static void main(String[] args) { // System.out.println(testFilter("刚在#微操盘#卖出的这支600111 包钢稀土 又挣钱了!有木有!人品爆发了有木有! http://t.cn/