字符串的MD5的32位加密和16位加密
2013-08-30 13:23
567 查看
import java.security.MessageDigest;
import java.util.Locale;
public class MD5Util {
public static String encode(String content) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(content.getBytes());
return getEncode16(digest);
//return getEncode32(digest);
} catch (Exception e) {
}
return null;
}
/**
* 32位加密
* @param digest
* @return
*/
private static String getEncode32(MessageDigest digest) {
StringBuilder builder = new StringBuilder();
for (byte b : digest.digest()) {
builder.append(Integer.toHexString((b >> 4) & 0xf));
builder.append(Integer.toHexString(b & 0xf));
}
//return builder.toString().toLowerCase(); // 小写
//return builder.toString().toUpperCase(); // 大写
// java.lang.String.toUpperCase(Locale locale) 方法将在此字符串中的所有字符为大写的规则给定的Locale.
//return builder.toString().toUpperCase(Locale.getDefault()); // 大写
return builder.toString();
}
/**
* 16位加密
* @param digest
* @return
*/
private static String getEncode16(MessageDigest digest) {
StringBuilder builder = new StringBuilder();
for (byte b : digest.digest()) {
builder.append(Integer.toHexString((b >> 4) & 0xf));
builder.append(Integer.toHexString(b & 0xf));
}
// 16位加密,从第9位到25位
//return builder.substring(8, 24).toString().toUpperCase();
return builder.substring(8, 24).toString();
}
}
参考:http://jiewushanshan.lofter.com/post/cf538_1d903d
http://blog.csdn.net/lincyang/article/details/5709189
import java.util.Locale;
public class MD5Util {
public static String encode(String content) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(content.getBytes());
return getEncode16(digest);
//return getEncode32(digest);
} catch (Exception e) {
}
return null;
}
/**
* 32位加密
* @param digest
* @return
*/
private static String getEncode32(MessageDigest digest) {
StringBuilder builder = new StringBuilder();
for (byte b : digest.digest()) {
builder.append(Integer.toHexString((b >> 4) & 0xf));
builder.append(Integer.toHexString(b & 0xf));
}
//return builder.toString().toLowerCase(); // 小写
//return builder.toString().toUpperCase(); // 大写
// java.lang.String.toUpperCase(Locale locale) 方法将在此字符串中的所有字符为大写的规则给定的Locale.
//return builder.toString().toUpperCase(Locale.getDefault()); // 大写
return builder.toString();
}
/**
* 16位加密
* @param digest
* @return
*/
private static String getEncode16(MessageDigest digest) {
StringBuilder builder = new StringBuilder();
for (byte b : digest.digest()) {
builder.append(Integer.toHexString((b >> 4) & 0xf));
builder.append(Integer.toHexString(b & 0xf));
}
// 16位加密,从第9位到25位
//return builder.substring(8, 24).toString().toUpperCase();
return builder.substring(8, 24).toString();
}
}
参考:http://jiewushanshan.lofter.com/post/cf538_1d903d
http://blog.csdn.net/lincyang/article/details/5709189
相关文章推荐
- 字符串的MD5的32位加密和16位加密
- java MD5 加密 16位和32位,注意字符串最好用UTF-8编码
- 原来asp的MD5 16位加密如何在php 32位加密中使用
- Android:MD5 32位 16位小写加密
- ios 关于MD5 加密的32位与16位
- java MD5 加密(16位/32位)
- Java 编程下字符串的 16 位、32位 MD5 加密
- C# MD5 加密方法 16位或32位
- MD5 32位、16位加密
- ASP MD5 16位和32位加密实现
- C# MD5-16位加密实例,32位加密实例(两种方法)
- C# MD5 16位和32位加密
- md5 16位二进制与32位字符串相互转换示例
- Java 编程下字符串的 16 位、32位 MD5 加密
- 说说 MD5 加密后的类型(16位与 32位的区别)
- Java 编程下字符串的 16 位、32位 MD5 加密
- Android中MD5(16位或32位)加密工具类.
- C# MD5-16位加密实例,32位加密实例(两种方法)
- 在线破解16位和32位的MD5加密结果的网站
- C# MD5-16位加密实例,32位加密实例(两种方法)