码迷,mamicode.com
首页 > 编程语言 > 详细

Java开发通用小工具(视情况不定时更新)

时间:2021-06-08 23:30:55      阅读:0      评论:0      收藏:0      [点我收藏+]

标签: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 }

 

Java开发通用小工具(视情况不定时更新)

标签:pre   obj   利用   class   and   cep   java开发   外部   hex   

原文地址:https://www.cnblogs.com/samgege/p/14863241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!