博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 短连接+MD5加密短链接
阅读量:6148 次
发布时间:2019-06-21

本文共 1729 字,大约阅读时间需要 5 分钟。

java 短连接+MD5加密短链接

import java.security.MessageDigest;

public class ShotUrlUtil {
public static void main(String[] args) {
System.out.println(shortUrl("http://www.baidu.com/"));
}
public static String shortUrl(String 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 md5str = getMD5Str(url);
      System.out.println(md5str);
      String hex = md5str;
          String sTempSubString = hex.substring(8, 16);
          long lHexLong = 0x3FFFFFF3 & Long.parseLong (sTempSubString, 16);
          String outChars = "" ;
          for ( int j = 0; j < 6; j++) {
             long index = 0x0000003C & lHexLong;
             outChars += chars[( int ) index];
             // 每次循环按位右移 5 位
             lHexLong = lHexLong >> 5;
          }
      return outChars;
   }
 
private static String getMD5Str(String str) {  
       MessageDigest messageDigest = null;  
       try {  
           messageDigest = MessageDigest.getInstance("MD5");  
           messageDigest.reset();  
           messageDigest.update(str.getBytes("UTF-8"));  
       } catch (Exception e) {  
           System.out.println("catch!");  
       } 
       byte[] byteArray = messageDigest.digest();  
       StringBuffer md5StrBuff = new StringBuffer();  
       for (int i = 0; i < byteArray.length; i++) {              
           if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)  
               md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));  
           else  
               md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));  
       }  
       return md5StrBuff.toString();  
   }  
}

转载于:https://www.cnblogs.com/javaEEspring/archive/2012/05/18/2523220.html

你可能感兴趣的文章
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
IOC —— AOP
查看>>
比特币现金将出新招,推动比特币现金使用
查看>>
数据库的这些性能优化,你做了吗?
查看>>
某大型网站迁移总结(完结)
查看>>
部署SSL证书后,网页内容造成页面错误提示的处理办法
查看>>
MS SQLSERVER通用存储过程分页
查看>>
60.使用Azure AI 自定义视觉服务实现物品识别Demo
查看>>
Oracle 冷备份
查看>>
jq漂亮实用的select,select选中后,显示对应内容
查看>>
C 函数sscanf()的用法
查看>>
python模块之hashlib: md5和sha算法
查看>>
解决ros建***能登录不能访问内网远程桌面的问题
查看>>
pfsense锁住自己
查看>>
vsftpd 相关总结
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
【Git入门之四】操作项目
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>