public class MD5_Test {
public static String md5_1(String oldStr) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] oldBytes = oldStr.getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(oldBytes);
byte[] newBytes = md.digest();
char newStr[] = new char[32];
for (int i = 0; i < 16; i++) {
byte tmp = newBytes[i];
newStr[2 * i] = hexDigits[tmp >>> 4 & 0xf];
newStr[2 * i + 1] = hexDigits[tmp & 0xf];
}
return new String(newStr);
} catch (Exception e) {
return null;
}
} public static String md5_2(String oldStr) {
try {
MessageDigest digest = MessageDigest.getInstance("md5");
byte[] bs = digest.digest(oldStr.getBytes());
String hexString = "";
for (byte b : bs) {
int temp = b & 255;
if (temp < 16 && temp >= 0) {
hexString = hexString + "0" + Integer.toHexString(temp);
} else {
hexString = hexString + Integer.toHexString(temp);
}
}
return hexString;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
} public static String md5_3(String plainText) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
return buf.toString();
// System.out.println("result: " + buf.toString());//32位的加密
// System.out.println("result: " + buf.toString().substring(8,24));//16位的加密
} public static String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
// 确定计算方法
MessageDigest md5 = MessageDigest.getInstance("MD5");
BASE64Encoder base64en = new BASE64Encoder();
// 加密后的字符串
String newstr = base64en.encode(md5.digest(str.getBytes("utf-8"))); return newstr;
} public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
System.out.println(md5_1("1"));
System.out.println(md5_2("1"));
System.out.println(md5_2("1"));
}
}

输出结果:

最新文章

  1. poj 1384 Piggy-Bank(完全背包)
  2. 学习 jsonp
  3. json数据处理实战:Kafka+Flume+Morphline+Solr+Hue数据组合索引
  4. osgearth 配置mapNode TerrainOptions
  5. linux配置ssh互信
  6. Greedy_algorithm
  7. phalcon: 上下文转义
  8. HDU 4054
  9. ConcurrentHashMap使用示例
  10. hdoj 1686 Oulipo【求一个字符串在另一个字符串中出现次数】
  11. void *memmove( void* dest, const void* src, size_t count );数据拷贝,不需要CPU帮助
  12. OAuth流程
  13. NodeJs的简单介绍
  14. 修长城 (区间DP)
  15. 使用shell命令给文件中每一行的前面、后面添加字符
  16. django restframework PrimaryKeyRelatedField筛选的困惑
  17. SQLSERVER 数据量太大,重启服务器后,数据库显示正在恢复
  18. 四:(之一和之二) docker架构和底层技术分析(C/S架构)
  19. natapp 穿透访问 vue项目 Invalid Host header
  20. Java之线程池和Lambda表达式

热门文章

  1. Python基础之pytest参数化
  2. idea 创建Maven项目,Enable auto Import报“本地服务器没有从权威服务器上收到响应”
  3. python3 f-string格式化字符串的高级用法
  4. 【填坑往事】使用Rxjava2的distinct操作符处理自定义数据类型去重的问题
  5. 一个高性能跨平台基于Python的Waitress WSGI Server的介绍!
  6. NPOI Excel导入Invalid header signature
  7. windows10双系统删除linux
  8. Android 12(S) 图形显示系统 - 应用建立和SurfaceFlinger的沟通桥梁(三)
  9. C++多线程之互斥锁和超时锁
  10. iOS14新功能一览