【第22期】观点:IT 行业加班,到底有没有价值?

关于md5加密的实现(16位、32位)

原创 2016年08月30日 15:21:29

最近公司需要接口对接,用到了md5加密的验证,现整理出相关的加密算法的代码,供今后方便使用。

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

MD5加密算法代码(32位)

/**
    * @param plainText
    *            明文
    * @return 32位密文
    */
   public String encryption(String plainText) {
       String re_md5 = new String();
       try {
           MessageDigest md = MessageDigest.getInstance("MD5");
           md.update(plainText.getBytes());
           byte b[] = md.digest();

           int i;

           StringBuffer buf = new StringBuffer("");
           for (int offset = 0; offset < b.length; offset++) {
               i = b[offset];
               if (i < 0)
                   i += 256;
               if (i < 16)
                   buf.append("0");
               buf.append(Integer.toHexString(i));
           }

           re_md5 = buf.toString();

       } catch (NoSuchAlgorithmException e) {
           e.printStackTrace();
       }
       return re_md5;
   }
MD5加密算法代码(16位)
/**
	  * 16位MD5加密
	 * @param s
	 * @return
	 */
	public final static String MD5(String s) {
	        char hexDigits[]={'0','1','2','3','4','5','6','7','8','9',
	        		'A','B','C','D','E','F'};
	        try {
	        	byte[] btInput = s.getBytes();
	   	     // 获得MD5摘要算法的 MessageDigest 对象
				MessageDigest mdInst = MessageDigest.getInstance("MD5");
				 // 使用指定的字节更新摘要
	            mdInst.update(btInput);
	            // 获得密文
	            byte[] md = mdInst.digest();
	            // 把密文转换成十六进制的字符串形式
	            int j = md.length;
	            char str[] = new char[j * 2];
	            int k = 0;
	            for (int i = 0; i < j; i++) {
	                byte byte0 = md[i];
	                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
	                str[k++] = hexDigits[byte0 & 0xf];
	            }
	            return new String(str);
			} catch (NoSuchAlgorithmException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				 return null;
			}
	         
	        
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

C# MD5-16位加密实例,32位加密实例(两种方法)

出处:http://www.xuebuyuan.com/319511.html 1.MD5 16位加密实例 using System; using System.Collections.Ge...

java md5 加密 32位/16位

/* * 记得以前写过,找不到了…… * 百度的空间内容搜索还是不太理想…… * 再写一次吧…… */ import java.security.MessageDigest; public class Md5 { /** * md5加密方法 * @author: zhengsunlei * Jul 30, 2010 4:38:28 PM * @param plainText 加密字符串 * @return String 返回32位md5加密字符串(16位加密取substring(8,24)) * 每位工程师都有保持代码优雅的义务 * each enginee

ASP MD5 16位和32位加密实现

<% Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WORD =...

关于php MD5的16位raw binary输出和32位字符串输出

因为需要php aes加密数据,考虑使用php MD5 输出16位的binary作为密钥。 google 了一下“php MD5 16”  竟然发现很多文章建议用截取字符串的方式实现,语句如下所示: &lt;?php echo substr(md5("admin"),8,16); // 16位MD5加密 ?&gt;   也许他们需要一个长度是16位的随机字符串, 更可能的是他们理解错了MD5的真正意义。   <pre name="
  • jiorry
  • jiorry
  • 2011-02-06 21:27
  • 2423

ios 关于MD5 加密的32位与16位

在IOS开发过程中,为了保证数据的安全,我们通常要采取一些加密方法,常见的加密有Base64加密和MD5加密。Base64加密是可逆的,MD5加密目前来说一般是不可逆的。我们在开发一款App过程中,对...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)