JDK 自带
MessageDigest md5 加密
// 创建md5加密对象
MessageDigest md5 = MessageDigest.getInstance("md5");
Base64.Encoder encoder = Base64.getEncoder();
//转换成字符串
new String(encoder.encode(md5.digest(passwd.getBytes())), StandardCharsets.ISO_8859_1);
Base64 加密
@Test
void practise() {
// 创建对象
Base64.Encoder encoder = Base64.getEncoder();
// 把20加密
String base64UserIDEncoded = encoder.encodeToString(String.valueOf(20).getBytes());
// 把当前时间加密
String currentStringBase64Encoded = encoder.encodeToString(String.valueOf(System.currentTimeMillis()).getBytes());
// 进行拼接
String s = currentStringBase64Encoded + currentStringBase64Encoded.substring(4, 8) + base64UserIDEncoded;
// 拼接好转数组
byte[] bytes = s.getBytes();
// 将该字符串的长度转成数组
byte[] bytes1 = new byte[s.length()];
// 元素进行加减,数据更换 ,这里直接反转也可以,这里使用的是计算
for (int i = 0; i < bytes.length; i++) {
bytes1[i] = bytes[bytes.length - i - 1];
}
// 把=号用#号替换
String s1 = new String(bytes1).replaceAll("=","#");
}
Base64 解密
@Test
void parent() {
// 解密前先判断会不会是空的
if(StringUtils.isBlank("#AjMwczM##ANyIDMwQDMwczM3YTM")){
return null;
}
// 反转字符串
String toString = new StringBuffer("#AjMwczM##ANyIDMwQDMwczM3YTM").reverse().toString();
// 把 #号替换为=号
String replaceAll = toString.replaceAll("#", "=");
// 让==这个索引 + 6,获取索引,也就是最后四位
int i = replaceAll.indexOf("==") + 6;
// 截取刚刚得到的索引
String substring = replaceAll.substring(i);
// 解密
String s = new String(Base64.getDecoder().decode(substring.getBytes()));
}
URL 解码
String decode = URLDecoder.decode("%23ATM1czM%23%23QMwgjNzgDO1czM3YTM", StandardCharsets.UTF_8);
JSON序列化
ObjectMapper 序列化
依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
// 创建对象
private static final ObjectMapper MAPPER = new ObjectMapper();
// 转JSON
String json = MAPPER.writeValueAsString(new User());
// 反序列化
User user1 = MAPPER.readValue(json, User.class);
commons-lang3
String工具类
判断是否为空,空格也为空
//判断是否为空,false
StringUtils.isBlank("names");
判断字符串是否非空
StringUtils.isNotBlank(""); //是true
时间格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
正则
匹配手机号
String phone = "1((3[\\d])|(4[5-7|9])|(5[0-3|5-9])|(6[5-7])|(7[0-8])|(8[\\d])|(9[1|8|9]))\\d{8}";
"^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$" // 手机号
匹配邮箱
String s = "([0-9]|[a-z]|[A-Z])+@([0-9]|[a-z]|[A-Z])+\.([0-9]|[a-z]|[A-Z])+";
匹配身份证
String idCard = "^[1-9]\d{5}(18|19|20)\d{2}(0\d|10|11|12)(0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]";
集合
map 转 对象 import org.springframework.cglib.beans.BeanMap;
// 创建对象
IomBaseDataNe ne = new IomBaseDataNe();
// 交给bean map
BeanMap beanMap = BeanMap.create(ne);
// 开始复制
beanMap.putAll(map);