首页 > 学院 > 开发设计 > 正文

MD5加密

2019-11-14 10:42:57
字体:
来源:转载
供稿:网友

以下代码为在公司项目中用到的md5加密的一个类。

此代码不涉及具体业务层面的知识

个人认为此类的优点:

1.方法之间的层层调用

2.个人加了点注释

上代码:

package com.test;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/*** MD5加密类练习* @author Administrator*/public class LisMD5Exercise {/*** MD5加密练习 返回byte[]* @param cPlainStr* @return* @author Zyw*/public static final byte[] encrypt(String cPlainStr){byte[] tBEncryptDatas = null;//定义一个byte数组try {MessageDigest md = MessageDigest.getInstance("MD5");//System.out.PRintln(cPlainStr.getBytes().toString());md.update(cPlainStr.getBytes());tBEncryptDatas = md.digest();} catch (NoSuchAlgorithmException e) {tBEncryptDatas = null;e.printStackTrace();}return  tBEncryptDatas;}/*** MD5加密 返回十六进制字符串* @param cPlainStr* @return*/public static final String encryptString(String cPlainStr){byte[] tBEncryptDatas = null;tBEncryptDatas = LisMD5Exercise.encrypt(cPlainStr);if(tBEncryptDatas==null)return null;return LisMD5Exercise.bytesHEX(tBEncryptDatas);}/*** 把byte转换为对应的十六进制字符* @author Administrator* @param b* @return*/public static String byteHEX(byte b){char[] diget = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[] ob = new char[2];ob[0] = diget[(b>>>4)&0X0F];//0X代表16进制,0F代表16进制中的15即二进制中的1111,>>>无符号右移(尖的那端在哪就是向哪个方向移动)//此外&逻辑与 &&具有短路运算规则.ob[1] = diget[b&0X0F];String s = new String(ob);return s;} /*** byte[]转换为对应的十六进制字符串* @param byte[] b*/public static String bytesHEX(byte[] b){StringBuffer Str = new StringBuffer();for(int i=0;i<b.length;i++){Str.append(LisMD5Exercise.byteHEX(b[i]));}return Str.toString();}/*** 测试方法* @param args*/public static void main(String[] args){String Str = "S3000001820";System.out.println(LisMD5Exercise.encryptString(Str));}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表