MD5加密

以下代码为在公司项目中用到的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));
}
}

























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值