【Java】String经MD5加密后的32位输出
2017-08-25 16:19
459 查看
Hankerrank的一道题,说实话我真不知道MD5的详细算法,包括字节转化为32位输出,在网上看到了好几个版本。我这里只写了一种,勉强可以理解。
import java.io.*;
import java.security.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
String s = new Scanner(System.in).next();
MessageDigest md = null;
byte[] buff;
String st;
StringBuffer sb= new StringBuffer();
try{
md = MessageDigest.getInstance("MD5");
md.update(s.getBytes());
buff = md.digest();
int digital;
for(int i=0;i<buff.length;i++){
digital = buff[i];
if(digital<0)digital+=256;
if(digital<16)sb.append("0");
sb.append(Integer.toHexString(digital));
}
}catch(Exception e){}
System.out.println(sb.toString());
}
}
参考自:http://www.weixuehao.com/archives/474
import java.io.*;
import java.security.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
String s = new Scanner(System.in).next();
MessageDigest md = null;
byte[] buff;
String st;
StringBuffer sb= new StringBuffer();
try{
md = MessageDigest.getInstance("MD5");
md.update(s.getBytes());
buff = md.digest();
int digital;
for(int i=0;i<buff.length;i++){
digital = buff[i];
if(digital<0)digital+=256;
if(digital<16)sb.append("0");
sb.append(Integer.toHexString(digital));
}
}catch(Exception e){}
System.out.println(sb.toString());
}
}
参考自:http://www.weixuehao.com/archives/474
相关文章推荐
- Java MD5 32位加密代码
- Java md5 加密String
- Java 二次MD5 32位小写加密算法与php页面加密结果相同
- MD5加密32位 C#版 JAVA 版
- java MD5 32位加密
- java MD5 加密(16位/32位)
- Java 编程下字符串的 16 位、32位 MD5 加密
- Java 编程下字符串的 16 位、32位 MD5 加密
- Java 二次MD5 32位小写加密算法与php页面加密结果相同
- 用JAVA编写MD5大写32位加密
- Java MD5 32位加密代码
- Java 编程下字符串的 16 位、32位 MD5 加密
- Java 编程下字符串的 16 位、32位 MD5 加密
- java MD5 加密 16位和32位,注意字符串最好用UTF-8编码
- Java 编程下字符串的 16 位、32位 MD5 加密
- Java 编程下字符串的 16 位、32位 MD5 加密
- Java最简洁加密32位MD5
- Java安全学习笔记(十)-输出流的加密和解密
- Java MD5 加密工具类
- java中使用MD5进行加密