JAVA中MD5加密解密(MD5工具类)

2023-10-31

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);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA中MD5加密解密(MD5工具类) 的相关文章

  • Android APK 文件的 MD5 校验和不同。为什么?

    我注意到 如果我编译一个 Android 应用程序两次 一次紧接另一次且没有任何更改 则两个 APK 文件具有两个不同的 MD5 校验和 未签名和签名的 APK 文件都会产生相同的结果 您可以将其作为 ZIP 文件打开 其中的内容在两个文件
  • PHP md5 解释

    我正在开发这个 PHP 项目 并且有很多地方使用了 md5 我什至已经使用过它很多次了 但直到今天我仍然不清楚这个功能是做什么的 我意识到它会解密传入的值 但是如何撤消它以使其恢复到原始值 也许我不清楚整个过程 如果有人有有关该过程的信息
  • wkhtmltopdf 每次运行都会生成不同的校验和

    我试图验证从运行到运行时从 wkhtmltopdf 生成的内容是否相同 但是每次运行 wkhtmltopdf 时 我都会针对同一页面获得不同的哈希 校验和值 我们正在谈论一些真正基本的东西 比如使用以下 html 页面 p This is
  • MD5 是否仍然足以唯一标识文件?

    考虑到 MD5 算法的破坏和安全问题等 MD5 散列文件是否仍然被认为是唯一识别该文件的足够好的方法 安全性不是我在这里最关心的问题 但唯一地标识每个文件才是 有什么想法吗 是的 MD5从安全角度来说已经被彻底攻破 但意外碰撞的概率仍然微乎
  • 如何将md5字​​符串转换为普通文本? [复制]

    这个问题在这里已经有答案了 我已将用户密码以 MD5 形式保存在数据库中 现在我想以明文形式向用户发送密码 有什么方法可以将 MD5 字符串转换为明文吗 MD5 是一个hashing http en wikipedia org wiki C
  • 如何在swift语言中使用CC_MD5方法

    在 Objective C 中 我们可以像这样对字符串进行哈希处理 const char cStr someString UTF8String unsigned char result 16 CC MD5 cStr strlen cStr
  • 我可以通过对现有 MD5 哈希加盐并使用 Scrypt 或 PBKDF2 HMACSHA256 对结果进行哈希来提高 MD5 哈希密码的安全性吗?

    我有一个使用 MD5 进行加盐和散列处理的旧密码数据库 我想更新系统以使数据更安全 第一个选项是在用户登录时将用户转换为新的哈希方案 Salt Scrypt 或 PBKDF2 HMACSHA256 并在一段时间后停用旧用户 因此他们必须使用
  • Python 2 与 3。相同的输入,不同的结果。 MD5 哈希值

    Python 3 代码 def md5hex data return hex string of md5 of the given string h MD5 new h update data encode utf 8 return b2a
  • MySQL:使用附加哈希字段的唯一文本字段

    在我的 MySQL 数据库中 我有一个表定义如下 CREATE TABLE mytablex cs id mediumint 8 unsigned NOT NULL AUTO INCREMENT tag varchar 6 COLLATE
  • 如何在R中创建列的md5哈希值?

    我有一个数据框 ID VID 1 xyz 0001 我想更换VIDmd5 哈希为VID列值 我该如何在 R 中做到这一点 我在看digest包但不知道如何将其放入 R 代码中 Thanks Package digest绝对适合这个任务 所以
  • Java计算MD5哈希值

    In http www anyexample com programming java java simple class to compute md5 hash xml http www anyexample com programmin
  • 在C中将MD5结果转换为整数

    我的目标是使用 MD5 结果来索引哈希表 我想对其执行模运算以在表中找到适当的槽 我尝试将其转换为无符号 long long 类型 当我打印结果时 对于相同的 MD5 哈希值 每次都会得到不同的数字 MD5 哈希值最初是一个 unsigne
  • php 中转换为 md5 是错误的

    我有一个表格 其中我从用户那里获取用户名和密码 我正在将密码转换为 md5 然后我将其插入数据库 在用户登录表单中 我获取密码并将其转换为 md5 然后我比较两个密码 它在某些条件下匹配 但如果密码 则失败p w0rd 有什么问题吗 这个问
  • BSD md5 与 GNU md5sum 输出格式?

    任何人都知道为什么 BSD md5 程序会产生这种格式的哈希输出 MD5 checksum md5 9eb7a54d24dbf6a2eb9f7ce7a1853cd0 而 GNU md5sum 会产生像这样更合理的格式 9eb7a54d24d
  • md5(file_contents_as_string) 等于 md5_file(/path/to/file) 吗?

    If I do 这将始终产生与以下内容相同的哈希值 是的 他们返回相同的 var dump md5 file get contents FILE var dump md5 file FILE 在我的例子中返回这个 string 32 4d2
  • 在 bash/ubuntu 中对数百万个字符串进行快速 md5sum

    我需要 ubuntu 上的 bash 脚本中大约 300 万个字符串的 MD5 和 300 万个字符串 gt 300 万个 MD5 哈希值 每个字符串的简单实现大约需要 0 005 秒 就这样4个多小时了 存在哪些更快的替代方案 有没有办法
  • 如何使用blueimp jquery上传插件获取每个块的md5迭代md5和

    我需要计算迭代的 md5 哈希值并将其发送到我的 upload api 但我不知道怎么办 我正在使用这里找到的教程 http tutorialzine com 2013 05 mini ajax file upload form http
  • 截断 MD5 的 ECDF 图

    在这个link https stackoverflow com questions 8184941 uniform distribution of truncated md5 它表示截断的 MD5 是均匀分布的 我想使用 PySpark 检
  • Memcache密钥生成策略

    给定函数f1它接收 n 个字符串参数 就运行时性能而言 什么被认为更好 memcache 的随机密钥生成策略 我们的 Memcache 客户端对其获取的密钥进行内部 md5sum 哈希处理 public class MemcacheClie
  • adler32 校验和的可靠性如何?

    我想知道与例如相比 adler32 校验和有多可靠 md5 校验和 维基百科上说 adler32 比 md5 可靠得多 所以我想知道有多少 以及以何种方式 更具体地说 我想知道它是否足够可靠 作为对大小为 20GB 以上的 tar 文件的长

随机推荐

  • 定时上报GPS坐标信息至服务器

    定时上报GPS坐标信息至服务器 本文通过一个 定时上报GPS坐标信息至服务器 的例子来讲述Android网络应用程序的开发 使用最为流行的restfull接口 第一步 定义网络接口 客户端以post方式将经纬度上传至服务器 第二步 开发服务
  • c语言延时错误,延时函数报错,volatile一例

    延时函数出错 volatile一例 莫名其妙的错误 使用Systick做的延时 初始化是这样的 SysTick配置 SysTick CLKSourceConfig SysTick CLKSource HCLK Div8 if SysTick
  • 详解python中的round()函数

    round 是python自带的一个函数 用于数字的四舍五入 但是round 的输出结果与Python的版本有关 在python3中 round 1 0 2 0 0 在python2中 round 1 0 2 0 1 python Pyth
  • U盘启动中标麒麟V6双系统安装教程

    U盘启动中标麒麟V6双系统安装教程 本教程是双系统教程 一般是安装XP win7的机器需要安装中标麒麟的朋友使用 教程内容都是在网上找到相关资料结合自己经验编写 以供需要的朋友参考 一 准备工作 1 U盘一个 2G以上 2 下载中标麒麟V6
  • RTX3080在Ubuntu 20.04复现yolact

    1 背景 刚入门CV和deep learning几个月 想复现一下yolact 最初的计划是在实验室电脑搭建环境复现 后来发现RTX3080显卡只支持CUDA11 那么能下载的pytorch最低版本是1 7 于是搭建了一个pytorch1
  • Centos+Python3+Robot Framework环境搭建

    1 centos和python3环境安装 1 1在docker中搜索基于python3 6的centos镜像 docker search python 1 2 下载镜像 docker pull centos python 36 centos
  • 黑盒测试(实践)

    黑盒测试 实践 三角形问题 有一个程序 接收三个整数输入a b和c 分别表示三角形的三条边 a b和c的取值范围都为 1 100 程序根据输入的三条边判断三角形的类型 等边三角形 等腰三角形 普通三角形和不构成三角形 如果输入的a b和c不
  • Vue 学习 第一篇 初始 Vue

    一 MVVM 模式 1 MVVM MVVM 模式包含三个部分 M 模型 model V 视图 view VM 视图模型 view model 特点 实现了数据双向绑定 数据由模型进入视图 通过数据绑定实现 数据由视图进入模型 通过数据监听实
  • spring cloud系列学习(六、SpringCloud之 gateway网关)

    Spring Cloud Gateway 是基于 Spring Framework 5 0 和 Spring Boot 2 0 构建的 API 网关 提供路由等功能 其旨在提供一种简单而有效的方法路由到 API 并为它们提供跨领域的关注点
  • Onenote,Ulysses和Effie哪个更适合采编?

    众所周知 采编的工作和文字有着密不可分的联系 作为采编 不仅需要审核和修改别人的文字 还需要自己创作 可见写作在采编工作内容中占据着怎样重要的地位 那么对于采编工作者来说 是否有一款适合他们的写作软件呢 本文针对采编工作者的写作需求进行分析
  • 41 管理虚拟机可维护性-虚拟机NMI Watchdog

    文章目录 41 管理虚拟机可维护性 虚拟机NMI Watchdog 41 1 概述 41 2 注意事项 41 3 操作步骤 41 管理虚拟机可维护性 虚拟机NMI Watchdog 41 1 概述 NMI Watchdog是一种用来检测Li
  • midjourney/stable diffusion/太乙/文心一格/智源对比

    挑战周杰伦 稻香 MV画面生成 中英文绘画模型PK Midjourney DALL E2 Stable Diffusion 百度ERNIE ViLG 2 0 哔哩哔哩 bilibili本期视频小土同学使用周杰伦 稻香 评测了最近大热的 6
  • 人工智能开源项目

    基于TensorFlow的框架 https github com fchollet keras https github com tflearn tflearn https github com beniz deepdetect https
  • go 实现高效的 byte 连接

    在go语言中 bytes Buffer提供了高效的多个bytes连接 举个栗子 1 多个 byte 连接 b1 byte this is a first string b2 byte this is a second string var
  • stm32视频教程分享:心率检测仪的设计与实现

    stm32视频教程分享 心率检测仪的设计与实现 STM32系列是基于专为要求高性能 低成本 低功耗的嵌入式应用专门设计的ARM Cortex M3内核 本项目主要讲述了通过心律传感器采集我们的心律数据 然后通过串口传送到上位机中 上位机用Q
  • 前端笔试面试题目整理(持续更新)

    一 JS 1 前端开发面试题 应届生 js基础算法题 2 VK的秋招前端奇遇记 一 3 VK的秋招前端奇遇记 二 4 送你 43 道 JS 面试题 送你58道JavaScript面试题 28 道 JavaScript 面试题 看看能错几道
  • javascript用面向过程写贪吃蛇游戏

    下面是HTML与CSS的代码 CSS
  • 判断二叉树是否为完全二叉树

    判断二叉树是否为完全二叉树 提示 本节仍然是重点说二叉树的DP递归套路 非常重要而且容易理解 二叉树的动态规划树形DP递归套路系列文章有这些 可以帮助你快速掌握树形DP的题目解题思想 就一个套路 1 判断二叉树是否为平衡二叉树 树形DP 树
  • Golang math基本数学函数

    三角函数 正弦函数 反正弦函数 双曲正弦 反双曲正弦 func Sin x float64 float64 func Asin x float64 float64 func Sinh x float64 float64 func Asinh
  • JAVA中MD5加密解密(MD5工具类)

    ASCII American Standard Code for Information Interchange 美国信息交换标准代码 http ascii 911cha com 工具类如下 import org apache common