首页 > 其他分享 >简单MD5加密工具-UTF-8

简单MD5加密工具-UTF-8

时间:2022-09-28 16:26:02浏览次数:49  
标签:加密 String System return println UTF out MD5

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 简单MD5加密工具
 * @author Jack
 */
public class MD5Util {
    public static String hexMD5(String string) {
        String md5 = MD5(string);
        if (null != md5 && md5.length() >= 24)
            md5 = md5.substring(8, 24);
        return md5;
    }

    public static String MD5(String string) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            return byteArrayToHexString(md.digest(string.getBytes("UTF-8")));
        } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
            return null;
        }
    }

    public static String MD5(byte[] bytes) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            return byteArrayToHexString(md.digest(bytes));
        } catch (NoSuchAlgorithmException e) {
            return null;
        }
    }

    private static String byteArrayToHexString(byte[] bytes) {
        StringBuffer buf = new StringBuffer(bytes.length * 2);
        for (int i = 0; i < bytes.length; i++) {
            if ((bytes[i] & 0xFF) < 16)
                buf.append("0");
            buf.append(Long.toString((bytes[i] & 0xFF), 16));
        }
        return buf.toString();
    }

    /**
     * 返回当前日期年月日时分秒
     * @return
     */
    private static String getCurrentDate() {
        String currentTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
        return currentTime;
    }

    public static void main(String[] args) {
        String module = "ptsOperanDayFeignApi.staicsList";//模块
        String account = "G111209";//专属账号
        String pwd = "C22711113514";//专属密码
        String signKey= "84911111111KKJ816";//密钥
        String currentDate = getCurrentDate();
        StringBuilder sb = new StringBuilder(module).append(account).append(signKey).append(pwd).append(currentDate);
        String reuslt = MD5((sb.toString())).toUpperCase();
        System.out.println("加密前参数:");
        System.out.println("module:" + module);
        System.out.println("account:" + account);
        System.out.println("signKey:" + signKey);
        System.out.println("pwd:" + pwd);
        System.out.println("currentDate:" + currentDate +" 格式:yyyyMMddHHmmss");
        System.out.println("------------------------------------");
        System.out.println("参数组合:" + sb.toString());
        System.out.println("------------------------------------");
        System.out.println("加密结果");
        System.out.println("32位大写:" + reuslt);
        System.out.println("16位大写:" + reuslt.substring(8, 24));

    }
}

 

标签:加密,String,System,return,println,UTF,out,MD5
From: https://www.cnblogs.com/Jack-zhao/p/16738459.html

相关文章

  • 附录B JAVA版DES加密/解密
    /*DES解密*/publicstaticStringdecrypt(Stringmessage,Stringkey)throwsException{byte[]bytesrc=Base64.decode(message);//convertHexString......
  • 前端加密算法之SM4
    1、简介1.1、国产加密算法,是一个分组算法,该算法的分组长度为128bit,密钥长度为128bit,SM4算法与AES算法具有相同的密钥长度分组长度128比特,因此在安全性上高于3DES算......
  • 3.用户登陆-用户加密-用户与角色
    一、用户模块1.用户名称获取1.分析用户存储位置为securityContext---authentication---principal对象中//后台获取权限框架存储的用户对象SecurityContextcontext=Sec......
  • 前端加密算法之SHA1
    1、简介和前篇所讲的MD5加密算法一样,都属于哈希算法,尽管安全性要高于MD5,但运算速度要比MD5慢2、实现因为同属于哈希算法,所以也可以使用hashlib库实现1impo......
  • 前端加密算法之MD5
    1、简介1.1、隶属于单向加密算法1.2、不可逆的加密算法、不能从密文反推出明文,除非做碰撞测试1.3、一种摘要算法、哈希算法、散列算法(通过一个函数,把任意......
  • 前端加密算法之RSA
    1、简介RSA为非对称加密算法,即加密解密密钥不一致,公私钥成对出现。一般而言,公钥是公开的,在前端页面我们都是可以看到的,而私钥则是不公开的,用于在后端对前端发来的密......
  • 关于加密博客的密码
    为了防止资料外泄,只有在南外长期训练的学生才能看到,因此现统一将大部分加密博客的密码设为:2楼机房密码+校内OJ的端口号(以2022.9.27的为准)+CSP2022模拟赛1比赛......
  • 前端加密算法之CBC-AES
    1、简介CBC模式的AES加密相比较于ECB模式,多了一个偏移量,所以安全性要比ECB模式高2、核心加密js注:和前篇ECB模式一样这里都是直接采用调用js的方式实现了加密,当......
  • MD5 加密算法 All In One
    MD5加密算法AllInOneMD5算法是Hash算法的一种,叫做讯息摘要算法Message-DigestAlgorithm/消息摘要算法https://zh.wikipedia.org/wiki/MD5https://en.wikipe......
  • 引用:实践:使用Jasypt加密SpringBoot配置文件加密springboot配置文件
    引用地址:实践:使用Jasypt加密SpringBoot配置文件加密springboot配置文件 ......