标签:pre obj 利用 class and cep java开发 外部 hex
备注:此工具类需要JDK8+环境
1 package com.common.util; 2 3 import java.nio.charset.StandardCharsets; 4 import java.security.MessageDigest; 5 import java.security.NoSuchAlgorithmException; 6 import java.util.Random; 7 8 /** 9 * 通用工具类(JDK8 环境) 10 * 11 * @author Sampert 12 * @version 1.0 13 * @date 2021/6/8 14 */ 15 public class CommonUtils { 16 /** 17 * 构造函数私有化,不允许在外部创建此工具类实例 18 */ 19 private CommonUtils(){} 20 21 /** 22 * 利用java原生的摘要实现SHA256加密 23 * 24 * @param str 待加密的明文 25 * @return java.lang.String 加密后的密文 26 */ 27 public static String getSHA256Str(String str) { 28 MessageDigest messageDigest; 29 String encodeStr = ""; 30 try { 31 messageDigest = MessageDigest.getInstance("SHA-256"); 32 messageDigest.update(str.getBytes(StandardCharsets.UTF_8)); 33 encodeStr = byteToHex(messageDigest.digest()); 34 } catch (NoSuchAlgorithmException e) { 35 e.printStackTrace(); 36 } 37 return encodeStr; 38 } 39 40 /** 41 * 将byte转为16进制 42 * 43 * @param bytes 待转化byte数组 44 * @return java.lang.String 16进制拼接结果(长度64位) 45 */ 46 private static String byteToHex(byte[] bytes) { 47 // 多线程环境用StringBuffer替代:StringBuffer strContent = new StringBuffer(); 48 StringBuilder strContent = new StringBuilder(); 49 String temp; 50 for (byte aByte : bytes) { 51 temp = Integer.toHexString(aByte & 0xFF); 52 if (temp.length() == 1) { 53 // 1得到一位的进行补0操作 54 strContent.append("0"); 55 } 56 strContent.append(temp); 57 } 58 return strContent.toString(); 59 } 60 61 /** 62 * 获取随机验证码 63 * @param randStart 每位随机数最小值(包含) 64 * @param randEnd 每位随机数最大值(排除) 65 * @param limitSize 随机数长度 66 * @return java.lang.String 随机数字符串形式 67 */ 68 public String getRandomCode(int randStart, int randEnd, int limitSize) { 69 return new Random() 70 .ints(randStart, randEnd) 71 .limit(limitSize) 72 .mapToObj(String::valueOf) 73 .reduce("", String::concat); 74 } 75 }
标签:pre obj 利用 class and cep java开发 外部 hex
原文地址:https://www.cnblogs.com/samgege/p/14863241.html