MD5加密
package test.test;
import org.apache.commons.codec.digest.DigestUtils;
import java.io.UnsupportedEncodingException;
import java.security.PrivateKey;
/**
* MD5签名处理核心文件
* */
public class MD5 {
/**
* 签名字符串
*
* @param text
* 需要签名的字符串
* @param key
* 密钥
* 编码格式
* @return 签名结果
*/
public static String sign(String text, String key, String charset) throws Exception {
text = text + key;
System.out.println("签名字符串:"+text);
return DigestUtils.md5Hex(getContentBytes(text, charset));
}
/**
* 签名字符串
*
* @param text
* 需要签名的字符串
* @param key
* 密钥
* @param charset
* 编码格式
* @return 签名结果
* @deprecated 无替代方法
*/
public static String sign(String text, PrivateKey key, String charset) throws Exception {
throw new UnsupportedOperationException();
}
/**
* 签名字符串
*
* @param text
* 需要签名的字符串
* @param sign
* 签名结果
* @param key
* 密钥
* @param charset
* 编码格式
* @return 签名结果
*/
public static boolean verify(String text, String sign, String key, String charset)
throws Exception {
text = text + key;
System.out.println("签名字符串:"+text);
String mysign = DigestUtils.md5Hex(getContentBytes(text, charset));
if (mysign.equals(sign)) {
return true;
} else {
return false;
}
}
/**
* @param content
* @param charset
* @return
* @throws java.security.SignatureException
* @throws java.io.UnsupportedEncodingException
*/
private static byte[] getContentBytes(String content, String charset) {
if (charset == null || "".equals(charset)) {
return content.getBytes();
}
try {
return content.getBytes(charset);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("签名过程中出现错误,指定的编码集不对,您目前指定的编码集是:" + charset);
}
}
public static void main(String[] args){
try {
String md5_sign = MD5.sign("15152200001", "mobile", "UTF-8");
System.out.println(md5_sign);
System.out.println(MD5.verify("15152200001", md5_sign, "mobile", "UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Jar包依赖
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec_version}</version>
</dependency>