zoukankan      html  css  js  c++  java
  • java 短连接+MD5加密短链接

    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();  
       }  
    }
  • 相关阅读:
    全卷积神经网络FCN
    面试题 —— 面向对象
    【一题多解】平方根的计算及完全平方数的判断
    【一题多解】Python 字符串逆序
    JVM 自带性能监测调优工具 (jstack、jstat)及 JVM GC 调优
    n 中选 m —— 随机采样的艺术
    位图(bitmap)—— C语言实现
    C++ STL 数据结构与算法 —— 排序
    斐波那契 —— 矩阵形式推导
    常用文本编辑器 editor 的常用插件 —— CopyEdit
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6939537.html
Copyright © 2011-2022 走看看