您的位置:首页 > 其它

字符串的MD5的32位加密和16位加密

2013-08-30 17:49 239 查看
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

/article/1516983.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: