[Java] MD5加密工具类 →→→→→进入此内容的聊天室

来自 , 2019-10-16, 写在 Java, 查看 140 次.
URL http://www.code666.cn/view/6a61d423
  1. package utils;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4. import java.security.MessageDigest;
  5. import java.security.NoSuchAlgorithmException;
  6. import java.util.Arrays;
  7.  
  8. /*
  9.  * MD5 加密工具类
  10.  *
  11.  */
  12. public   class  DigestUtil {
  13.  
  14.      private   static  String encodingCharset  =   " UTF-8 " ;
  15.    
  16.      /**
  17.      *  @param  aValue
  18.      *  @param  aKey
  19.      *  @return
  20.       */
  21.      public   static  String hmacSign(String aValue, String aKey) {
  22.          byte  k_ipad[]  =   new   byte [ 64 ];
  23.          byte  k_opad[]  =   new   byte [ 64 ];
  24.          byte  keyb[];
  25.          byte  value[];
  26.          try  {
  27.             keyb  =  aKey.getBytes(encodingCharset);
  28.             value  =  aValue.getBytes(encodingCharset);
  29.         }  catch  (UnsupportedEncodingException e) {
  30.             keyb  =  aKey.getBytes();
  31.             value  =  aValue.getBytes();
  32.         }
  33.  
  34.         Arrays.fill(k_ipad, keyb.length,  64 , ( byte )  54 );
  35.         Arrays.fill(k_opad, keyb.length,  64 , ( byte )  92 );
  36.          for  ( int  i  =   0 ; i  <  keyb.length; i ++ ) {
  37.             k_ipad[i]  =  ( byte ) (keyb[i]  ^   0x36 );
  38.             k_opad[i]  =  ( byte ) (keyb[i]  ^   0x5c );
  39.         }
  40.  
  41.         MessageDigest md  =   null ;
  42.          try  {
  43.             md  =  MessageDigest.getInstance( " MD5 " );
  44.         }  catch  (NoSuchAlgorithmException e) {
  45.  
  46.              return   null ;
  47.         }
  48.         md.update(k_ipad);
  49.         md.update(value);
  50.          byte  dg[]  =  md.digest();
  51.         md.reset();
  52.         md.update(k_opad);
  53.         md.update(dg,  0 ,  16 );
  54.         dg  =  md.digest();
  55.          return  toHex(dg);
  56.     }
  57.  
  58.      public   static  String toHex( byte  input[]) {
  59.          if  (input  ==   null )
  60.              return   null ;
  61.         StringBuffer output  =   new  StringBuffer(input.length  *   2 );
  62.          for  ( int  i  =   0 ; i  <  input.length; i ++ ) {
  63.              int  current  =  input[i]  &   0xff ;
  64.              if  (current  <   16 )
  65.                 output.append( " 0 " );
  66.             output.append(Integer.toString(current,  16 ));
  67.         }
  68.  
  69.          return  output.toString();
  70.     }
  71.  
  72.      /**
  73.      *
  74.      *  @param  args
  75.      *  @param  key
  76.      *  @return
  77.       */
  78.      public   static  String getHmac(String[] args, String key) {
  79.          if  (args  ==   null   ||  args.length  ==   0 ) {
  80.              return  ( null );
  81.         }
  82.         StringBuffer str  =   new  StringBuffer();
  83.          for  ( int  i  =   0 ; i  <  args.length; i ++ ) {
  84.             str.append(args[i]);
  85.         }
  86.          return  (hmacSign(str.toString(), key));
  87.     }
  88.  
  89.      /**
  90.      *  @param  aValue
  91.      *  @return
  92.       */
  93.      public   static  String digest(String aValue) {
  94.         aValue  =  aValue.trim();
  95.          byte  value[];
  96.          try  {
  97.             value  =  aValue.getBytes(encodingCharset);
  98.         }  catch  (UnsupportedEncodingException e) {
  99.             value  =  aValue.getBytes();
  100.         }
  101.         MessageDigest md  =   null ;
  102.          try  {
  103.             md  =  MessageDigest.getInstance( " SHA " );
  104.         }  catch  (NoSuchAlgorithmException e) {
  105.             e.printStackTrace();
  106.              return   null ;
  107.         }
  108.          return  toHex(md.digest(value));
  109.  
  110.     }
  111. }

回复 "MD5加密工具类"

这儿你可以回复上面这条便签

captcha