package nicetime.com.practise;
import java.security.MessageDigest;
/**
* MD5加密是JAVA应用中常见的算法,请写出两个MD5算法生成32位大写的CapitalMD5方法 和 生成32位小写的 AngelinaMD5 方法
*/
public class Md5Util
{
//MD5算法生成32位小写
public String AngelinaMD5(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte b[] = md.digest();
int i=0;
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));
}
str = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
//MD5算法生成32位大写
public String CapitalMD5(String str)
{
String result=null;
result=AngelinaMD5(str).toUpperCase();
return result;
}
public static void main(String[] args)
{
//加密的字符串
String str="testMd5Str";
String smallResult=null;
String bigResult=null;
Md5Util md5=new Md5Util();
smallResult=md5.AngelinaMD5(str);
System.out.println("smallResult_length="+smallResult.length()+"smallResult="+smallResult);
bigResult=md5.CapitalMD5(str);
System.out.println("--bigResult_length="+bigResult.length()+"--bigResult="+bigResult);
}
}