0%

常用的加密和编码(md5,base64...)

md5加密(用于密码加密)

md5加密简介

MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)。
加密不可逆可以用于密码加密

java工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import org.springframework.stereotype.Service;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Md5Utils {
public String code(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] byteDigest = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < byteDigest.length; offset++) {
i = byteDigest[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
//32位加密(小写)
return buf.toString();
//32位加密(大写)
//return buf.toString().toUpperCase();
// 16位的加密(小写)
//return buf.toString().substring(8, 24);
// 16位的加密(大写)
//return buf.toString().substring(8, 24).toUpperCase();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}

}

md5加密代码

1
String password = md5Utils.code("要加密的字符串");

与数据库密码比对

1
user1.getPassword().equals(md5Utils.code(param.getString("password")));

base64编码

base64简介

Base64是一种基于64个字符的编码算法,根据RFC 2045的定义:“Base64内容传送编码是以一种任意8位字节序列组合的描述形式,这种形式不易被人直接识别”。base64是一种编码方式,不是加密方法

工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import org.springframework.util.Base64Utils;

/**
* @Author 87312
*/
public class Base64Util {

public static byte[] decryptBASE64(byte[] key) throws Exception {
return Base64Utils.decode(key);
}
public static String encryptBASE64(byte[] key) throws Exception {
return new String(Base64Utils.encode(key));
}
}

base64简单使用

1
2
jiami = Base64Util.encryptBASE64("字符串".getBytes());
String jiemi = new String(Base64Util.decryptBASE64(jiami.getBytes()), "UTF-8");