在公司的项目中需要对sign进行加密,进行网路访问。写了这个MD5加密。平常我们也有很多地方需要进行MD5加密,例如对登录密码进行MD5加密。
对String字符串内容进行MD5加密,并且转化为大写后返回。
import android.text.TextUtils;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SecurityUtil {
private static String asHexString(final byte[] data) {
final StringBuilder sb = new StringBuilder();
for (final byte b : data) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
private static byte[] md5(final byte[] data) {
try {
final MessageDigest msgDigest = MessageDigest.getInstance("MD5");
msgDigest.update(data);
return msgDigest.digest();
} catch (final NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 对内容进行MD5,并且转化为大写后返回
*
* @param value
* @return
*/
public static String upperCaseMd5(final String value) {
String md5data = md5String(value);
if (!TextUtils.isEmpty(md5data)) {
return md5data.toUpperCase();
}
return null;
}
public static String md5String(final String value) {
if (!TextUtils.isEmpty(value)) {
try {
final byte[] data = value.getBytes("utf-8");
if (null != data) {
final byte[] digest = md5(data);
if (null != digest) {
return asHexString(digest);
}
}
} catch (final UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return null;
}
}