将一条长链接转成短链接。
来源:互联网 发布:国际域名和国内域名 编辑:程序博客网 时间:2024/06/11 16:04
import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Random;public class ShortUrlText {public static void main(String[] args) {System.out.println("请输入网址");String slongurl="http://www.51bi.com/bbs/_t_278433840/";String[] aresult=shorturl(slongurl);for(int i=0;i<aresult.length;i++){System.out.println("["+i+"]:"+aresult[i]);}Random random=new Random();int j=random.nextInt(4);System.out.println("短链接:"+aresult[j]);}public static String[] shorturl(String url){// 可以自定义生成 MD5 加密字符传前的混合 KEYString key="test"; // 要使用生成 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","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",};System.out.println(chars.length);// 对传入网址进行 MD5 加密String hex=md5ByHex(key+url);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]; // 每次循环按位右移 6 位 lHexLong= lHexLong >>6; } // 把字符串存入对应索引的输出数组 resUrl[i] = outchars;}return resUrl;}/** * MD5加密(32位大写) * @param src * @return */private static String md5ByHex(String string) {// TODO Auto-generated method stubtry {MessageDigest md=MessageDigest.getInstance("MD5");byte[] b=string.getBytes();md.reset();md.update(b);byte[] hash=md.digest();String hs="";String stmp="";for(int i=0;i<hash.length;i++){stmp=Integer.toHexString(hash[i] & 0xFF);if(stmp.length()==1)hs=hs+"0"+stmp;else{hs =hs+stmp;}}return hs.toUpperCase();} catch (NoSuchAlgorithmException e) {// TODO Auto-generated catch blockreturn "";}}}
0 0
- 将一条长链接转成短链接。
- 长链接/短链接
- 长链接转短链接
- 长链接转短链接
- TCP长链接/短链接
- 长链接和短链接
- 长链接转短链接
- http长链接和短链接
- 网络编程长链接和短链接
- URL长链接转换为短链接
- 长链接转换为短链接
- httpclient长链接与短链接
- 短链接和长链接概念
- java长链接转短链接代码
- URL长链接转短链接
- Android 长链接转短链接
- java长链接转短链接代码
- 长连接转短链接
- 【02】常用关键字,常量和变量,运算符,判断语句
- Drools5集成Spring3
- Hbase 知识点记录总结(1)
- 黑马程序员_C语言循环
- 云计算基础知识第三讲:云计算的产生和特点
- 将一条长链接转成短链接。
- [Python] DNS-Related Python Program
- js 图形 http://www.bootcss.com/p/chart.js/
- ios面试题汇总
- 云计算基础知识第四讲:虚拟化概念及相关概念介绍
- Android键盘将布局顶上去的解决办法
- java按照map的value排序
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- appium python版api笔记