1.MD系列
import java.security.MessageDigest;
import org.apache.commons.codec.binary.Hex;
/**
* MD5消息摘要算法加密
* JDK实现了MD5和MD2的加密
* MD4没有实现,需时可使用BC
* @author Sunshine
*
*/
public class MD5 {
private static String src = "oraro security md";
public static void main(String[] args) {
jdkMD5();
jdkMD2();
}
public static void jdkMD5(){
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5Bytes = md.digest(src.getBytes());
System.out.println("JDK MD5-->"+Hex.encodeHexString(md5Bytes));
} catch (Exception e) {
}
}
public static void jdkMD2(){
try {
MessageDigest md = MessageDigest.getInstance("MD2");
byte[] md5Bytes = md.digest(src.getBytes());
System.out.println("JDK MD2-->"+Hex.encodeHexString(md5Bytes));
} catch (Exception e) {
}
}
//使用cc简化JDKMD5的编程,结果是一样的
public static void ccMD5(){
try {
System.out.println("cc MD5-->"+DigestUtils.md5Hex(src.getBytes()));
} catch (Exception e) {
}
}
/**
* JDK MD5-->34797ae7f4e6786b824370f859d970ed
* JDK MD2-->863d2c6a8e7887388537f160cabf6de3
* cc MD5-->34797ae7f4e6786b824370f859d970ed
*/
}
2.SHA
import java.security.MessageDigest;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
/**
* 安全散列算法SHA
* @author Sunshine
*
*/
public class SHA {
private static String src = "oraro security sha";
public static void main(String[] args) {
jdkSHA1();
ccSHA256();
}
public static void jdkSHA1(){
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(src.getBytes());
System.err.println("JDK SHA1-->"+Hex.encodeHexString(md.digest()));
} catch (Exception e) {
e.printStackTrace();
}
}
public static void ccSHA256(){
try {
System.out.println("cc SHA1-1-->"+DigestUtils.sha256Hex(src.getBytes()));
System.err.println("cc SHA1-2-->"+DigestUtils.sha256Hex(src));
} catch (Exception e) {
e.printStackTrace();
}
}
}