JAVA中MD5加密解密(MD5工具类)_java md5解密工具类-程序员宅基地

技术标签: MD5  

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)

http://ascii.911cha.com/

工具类如下:

import org.apache.commons.codec.digest.DigestUtils;
import java.math.BigInteger;
import java.security.MessageDigest;

/**
 * Description: md5加密解密
 */
public class MD5 {
    

    public static String md5(String dateString) throws Exception {
    
        MessageDigest md5 = null;
        byte[] digest = MessageDigest.getInstance("md5").digest(dateString.getBytes("utf-8"));
        String md5code = new BigInteger(1, digest).toString(16);
        // 如果生成数字未满32位,需要前面补0
        for (int i = 0; i < 32 - md5code.length(); i++) {
    
            md5code = "0" + md5code;
        }
        return md5code;
    }

	//ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。
	//(1)0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),
	// 如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字			   符:SOH(文头)、EOT(文尾)、ACK(确认)等;
	// ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的	应用程序,而对文本显示有不同的影响。
	// 2)32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
	//(3)65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等
	。
    public static String md5PlusSalt(String keyword)
    {
    
		//md5加密
        String md5 = DigestUtils.md5Hex(keyword);
		//md5+盐
        char[] cArray = md5.toCharArray();
        for(int i = 0;i < cArray.length; i++)
        {
    
            if(cArray[i] >= 48 &&cArray[i] <= 57)
            {
    
                cArray[i] = (char)(105-cArray[i]);

            }
        }
		//都可以使用
        return  String.valueOf(cArray);
		//return  "".valueOf(cArray);

    }
	//
	解密+盐
    public static String md5MinusSalt(String md5)
    {
    
        char[] cArray=md5.toCharArray();
        for(int i=0;i<cArray.length;i++)
        {
    
            if(cArray[i]>=48&&cArray[i]<=57)
            {
    
                cArray[i]=(char)(105-cArray[i]);
            }
        }
        return  String.valueOf(cArray);
		//return  "".valueOf(cArray);
    }
}

测试类

import com.example.demo.system.util.MD5;
import org.apache.commons.codec.digest.DigestUtils;

/**
 * Description:MD5测试类
 */
public class Md5Test{
    

    public static void main(String[] args) {
    

        String keyword="i love you";
        String md5= DigestUtils.md5Hex(keyword);
        System.out.println("md5加密后:"+"\n"+md5);
        String md5salt= MD5.md5PlusSalt(keyword);
        System.out.println("加盐后:"+"\n"+md5salt);
        String word= MD5.md5MinusSalt(md5salt);
        System.out.println("解密后:"+"\n"+word);
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45423451/article/details/103409215

智能推荐

DB2创建数据库常用参数详解-程序员宅基地

文章浏览阅读169次。转自http://czmmiao.iteye.com/blog/1335801DB2创建数据库常用参数详解本文只介绍DB2 create database语法中的常用参数http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp CREATE DATABASE语法树Read syntax diagramSkip visua..._database collating sequence

python判断五个分数等级_给定4个测试分数,用Python计算最终字母等级-程序员宅基地

文章浏览阅读854次。这:def ?? (??):if grade >= 90 and = 80 and < 90:return("You received a B")elif grade >= 70 and < 80:return("You received a C")elif grade >= 60 and < 70:return("You received a D")else grade < 60:return(..._python若干个同学参加测试,分数为a,b,c,d,e五个等级,如果a计5分,b计4分,以此

计算机组装报告目录,计算机组装实验报告(共9篇).doc-程序员宅基地

文章浏览阅读129次。计算机组装实验报告(共9篇)计算机组装实验报告(共9篇)课程名称:微机组装检测与维护学生姓名班级学号所在院系专业日期琼台师专信息技术系 11 级计算机维护与组装网络虚拟装机教师:王炜琼台师专011-201第一学期计算机维护与组装装机实验报告班级 实验、实作项目:虚拟计算机组装 所学专业 实验用具:机房目的要求:学会通过虚拟平台组装计算机,掌握配机原则与计算机组成配置清单配件名型号主要参数价格芯片厂..._计算机组装报告

禁忌搜索算法求解TSP问题-python实现-程序员宅基地

文章浏览阅读6.5k次,点赞12次,收藏108次。禁忌搜索算法求解TSP问题-python实现(附代码)

数据结构实验之链表七:单链表中重复元素的删除_数据结构单链表怎么实现单链表数据的去重-程序员宅基地

文章浏览阅读3k次,点赞3次,收藏6次。1.知识点:逆序建立链表+节点删除 2.题意:按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个) 3.注意事项:节点删除时若删除节点为尾节点的情况代码:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;typedef struct str{ int num; ..._数据结构单链表怎么实现单链表数据的去重

Python模块学习:subprocess模块详解-程序员宅基地

文章浏览阅读974次。args: 要执行的shell命令,默认应该是一个字符串序列,如[‘df’, ‘-Th’]或(‘df’, ‘-Th’),也可以是一个字符串,如’df -Th’,但是此时需要把shell参数的值置为True。shell: 如果shell为True,那么指定的命令将通过shell执行。如果我们需要访问某些shell的特性,如管道、文件名通配符、环境变量扩展功能,这将是非常有用的。_subprocess模块

随便推点

java.lang.ClassNotFoundException出现的原因及解决办法,maven正确的idea设置及环境变量配置及配置文件设置,maven导包出现的问题及最新阿里云仓库的网络地址_java.lang.classnotfoundexception: archetypecatalog-程序员宅基地

文章浏览阅读2.3k次。java.lang.ClassNotFoundException-导致这个异常出现的原因只有两个1.代码写错了2.jar包没有导进来及解决此问题的方法有: 1.首先排查代码时候有错误,有误则根据报错其他信息进行改正,如果没有错误继续向下排查2.jar包有没有真正的导进来,此情况出现也有几种情况1:idea设置错误,或者环境变量配置错误2…maven有问题,我们重点将此问题3.如..._java.lang.classnotfoundexception: archetypecatalog=internal

强大的ANTLR4(1)_the definitive antlr 4 reference-程序员宅基地

文章浏览阅读566次。以前对于《编译原理》这门课有一种恐惧,现在强大的工具越来越多,有些原理并不一定要非常清楚,也是可以设计一种编程语言的,那就是ANTLR4。Antlr4(全名:ANother Tool for Language Recognition) 是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。ANTLR是用 Java 语言编写,作者是旧金山大学的 Terence Parr 博士,早在1989 年,他就开始创作ANTLR。_the definitive antlr 4 reference

np.mat()函数与np.array()函数的辨析-程序员宅基地

文章浏览阅读2.8w次,点赞51次,收藏242次。写在前面今天,在学习numpy的时候,偶然看到np.mat()函数,查了一下,也是生成矩阵,这里的mat与MATLAB中的很相似,所以在这里简单的记录一下np.mat()函数应该怎么使用,和numpy中的array()函数有什么区别?np.mat()的基本操作常规操作创建矩阵访问数据排序等>>> m= np.mat([1,2,3]) #创建矩阵>>..._np.mat

Oracle中时间日期转化函数to_date和to_char用法总结_to_char(sysdate,'yyyy-mm-dd')-程序员宅基地

文章浏览阅读5w次,点赞25次,收藏74次。在实际的工作中会经常会用到to_char()、to_date()函数来对时间、日期进行处理。1、to_char()函数的用法 1.1、将时间日期按照指定的格式输出,得到的是字符串,而非date类型。 select sysdate,to_char(sysdate,'yyyy-mm-dd')from dual; select sysdate,to_char(sysdate,'yyyy/m_to_char(sysdate,'yyyy-mm-dd')

java.lang.IllegalStateException: argument type mismatch 参数类型不匹配-程序员宅基地

文章浏览阅读1.9k次。java.lang.IllegalStateException: argument type mismatch新写的功能报错,看起来没有问题,其实是入参时少写一个注解@RequestBody,你看看是不是和我一样少写一个注解!至于@RequestBody注解的详细介绍和用法大家可以参考:https://blog.csdn.net/justry_deng/article/details/80972817..._java.lang.illegalstateexception: argument type mismatch

Python零基础入门(四)——变量,数据类型与运算符_print("myname:",type(myname))-程序员宅基地

文章浏览阅读9.6k次,点赞28次,收藏23次。在 Python 中,定义变量非常简单,不需要先声明变量类型,只需要给变量取一个名字,并使用等号将其与数据关联起来。x和message。x存储了整数值 5,message存储了字符串值 “Hello, world!但是变量的命名并不是任意的,应遵循以下几条规则变量名必须是一一个有效的标识符。变量名不能使用 Python 中的保留字。慎用小写字母 1 和大写字母 O。应选择有意义的单词作为变量名。另外,Python 是一种动态类型的语言,也就是说,变量的类型可以随时变化。_print("myname:",type(myname))

推荐文章

热门文章

相关标签