您的位置:首页 > 编程语言 > Java开发

在Java中使用MessageDigest实现MD5,sha1等加密

2006-01-04 20:42 796 查看
import java.security.*;

/*
* TestEncrypt.java
* Author: MKing
* Last Date: 2005-11-21
* Description: A test progrm to encrypt a string using MD5 or SHA-1,etc.
*/

public class TestEncrypt {

public TestEncrypt() {}

public String Encrypt(String strSrc,String encName) {
//parameter strSrc is a string will be encrypted,
//parameter encName is the algorithm name will be used.
//encName dafault to "MD5"
MessageDigest md=null;
String strDes=null;

byte[] bt=strSrc.getBytes();
try {
if (encName==null||encName.equals("")) {
encName="MD5";
}
md=MessageDigest.getInstance(encName);
md.update(bt);
strDes=bytes2Hex(md.digest()); //to HexString
}
catch (NoSuchAlgorithmException e) {
System.out.println("Invalid algorithm.");
return null;
}
return strDes;
}

public String bytes2Hex(byte[]bts) {
String des="";
String tmp=null;
for (int i=0;i<bts.length;i++) {
tmp=(Integer.toHexString(bts[i] & 0xFF));
if (tmp.length()==1) {
des+="0";
}
des+=tmp;
}
return des;
}

public static void main(String[]args) {
TestEncrypt te=new TestEncrypt();
String strSrc="可以加密汉字.Oh,and english";
System.out.println("Source String:"+strSrc);
System.out.println("Encrypted String:");
System.out.println("Use Def:"+te.Encrypt(strSrc,null));
System.out.println("Use MD5:"+te.Encrypt(strSrc,"MD5"));
System.out.println("Use SHA:"+te.Encrypt(strSrc,"SHA-1"));
System.out.println("Use SHA-256:"+te.Encrypt(strSrc,"SHA-256"));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: