jmeter-Java关于MD5加密方法 以及16位32位互转

2023-11-06

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。好比现在的ISO校验,都是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文件是否一致的。

小编在日常使用中发现,MD5加密有多种,而第三方只会告诉你他们使用的是MD5加密并不会告诉你是那种方法。因此小编在这里提供小编在日常使用过的两种方法:

第一种:

package hehe.md5;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Str2MD5 {
public String MD5(String sourceStr) {



String result = "";
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(sourceStr.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
//buf.append(String.format("%02X", b[offset]));
}
result = buf.toString();
// String a = result.toUpperCase();
// System.out.println("MD5(" + sourceStr + ",32) = " + result);
// System.out.println("MD5 32大写:"+a);
// System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));



} catch (NoSuchAlgorithmException e) {
System.out.println(e);
}
return result;
}

}

第二种:先写一个Util类

  public static String toHexString(byte[] bytes) {
         StringBuffer buffer = new StringBuffer();
         for (int i = 0; i < bytes.length; i++) {
             buffer.append(String.format("%02X", bytes[i]));
         }
         return buffer.toString();
    }
 
 public static void main(String[] args) throws UnsupportedEncodingException, NoSuchAlgorithmException  {
String a ="";
MessageDigest md5Tool = MessageDigest.getInstance("MD5");
         byte[] md5Data = md5Tool.digest(a.toString()).getBytes("UTF-8"));
         String sn = Util.toHexString(md5Data);

}

 

关于MD5 的大小写转换以及 32位于16位可以使用 toUpperCase()  toLowerCase()   substring(8, 24)   来进行转换,还有16位加密根据甲方的要求来截取

MD5算法具有以下特点:
  1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
  2、容易计算:从原数据计算出MD5值很容易。
  3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
  4、弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
  5、强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。
  MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。

 

转载于:https://www.cnblogs.com/Mr-Tester/p/7170256.html

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

jmeter-Java关于MD5加密方法 以及16位32位互转 的相关文章

随机推荐

  • IDEA 无法正确install springboot以及其他maven dependency

    java Maven plugins can not be found in IntelliJ Stack Overflow 由于使用了私有的maven仓库 我在 m2 下面设置了setting xml 然后就怎么也没法自动install
  • Atmel studio 出现expected identifier before ‘(’ token解决

    从网上复制了一份代码 粘贴的时候出错expected identifier before token 最关键的是每一行都报错 错的我怀疑人生 就算C语言在差也不至于一个错误都看不出来吧 搞了两个小时发现是空格的问题 嗨 心累 网上找了一个在
  • 【kali】28 提权——读取windows本地密码:pwddump、WCE、fgdump、mimikatz

    这里写自定义目录标题 一 抓包嗅探 二 键盘记录本地密码 三 查看本地缓存密码 1 浏览器查看密码 2 密码恢复工具 3 使用 Pwdump 查看 windows 本地登录密码 4 了解windows身份认证过程 5 WCE WINDOWS
  • Elasticsearch性能优化

    问题导读1 集群规划有哪些优化措施 2 磁盘该如何选择 3 内存该如何分配中 4 索引优化有哪些方法 5 数据模型优化包含哪些内容 0 题记Elasticsearch性能优化的最终目的 用户体验爽 Elasticsearch的爽点就是 快
  • Java21天打卡day19-异常

    异常 异常分类 编译时异常 程序编译时的异常例子 IO异常 SQL异常 运行时异常的区别 程序在运行时出现的异常 会自动抛出该异常 异常处理 try catch finally处理异常 throws 和 throw 的区别 throws是用
  • orcad capture学习笔记---3.DRC规则设置及检查

    1 确定版本 我用的cadence的版本是16 6 想要查看自己的orcad capture版本可以对桌面图标 右键 属性 进行查看 2 进入DRC设置界面 如下图 依次选中 dsn Tools Design Rules Check 然后会
  • 正则表达式常用的函数及用法说明

    正则表达式 正则表达式 Regular Expression 简称regex或RegExp 是一种用于描述字符串匹配规则的工具 它由一些特殊字符和普通字符组成 用于匹配符合特定模式的字符串 正则表达式可以用来实现各种功能 如搜索 匹配 替换
  • 在pycharm中导入anaconda中已安装好的库和包时出现的问题

    1 已安装好anaconda 且一些常用的包比如opencv matplotlib numpy都已安装配置完成 2 想在pycharm中直接导入anaconda里的已安装好的包 拿来使用 这样方便 因为不需要重新在pycharm里下载安装一
  • 解决MediaPlayer异常: Should have subtitle controller already set

    如果需要源码讲解或者其他问题可以私信找我 原因分析 1 MediaPlayer Should have subtitle controller already set 首先出现的这个问题在API19与在API21以上是有区别的 API 21
  • 【Java-IO】如何理解 Java 中的 IO 流?

    文章目录 1 概述 2 流的分类 1 输入流和输出流 2 字节流和字符流 3 节点流和处理流 1 概述 Java 的 IO 流是使用 Java 语言实现输入 输出的基础 可以通过调用 java io 包内的 API 很方便的实现数据的输入
  • 哈希表(限定版)

    目录 今日良言 既然没有女朋友 那就安心敲代码 一 效果展示 1 添加员工 2 显示员工 3 查找员工 4 删除员工 二 实现思路 1 总体思路分析 2 针对员工相关操作分析 三 完整代码 今日良言 既然没有女朋友 那就安心敲代码 七夕没情
  • java中String初始化的两种方式(图解)

    java中创建并初始化一个String对象 最常见的方式有两种 String str new String XXX String str XXX 前者是每一次new一个新对象 都会从堆内存中重新生成一个新的对象 后者则会在栈中创建一个对象引
  • Unity3D关于两个物体直接用圆柱进行连接画线(简单画线连接)

    最近做的东西需要用圆柱画线 网上找了些 没找到合适的 所以自己简单写了一个 这个函数只需要输入起始点和终点即可 材质可以自己调整 void DrawLS GameObject startP GameObject finalP Vector3
  • 从功能测试转型测试开发,薪资涨了20K,1000字讲述转型必经之路...

    身处职场之中 犹如逆水行舟不进则退 想要不被后浪拍死在沙滩上 就要不断学习新知识 接受新事物 要得到更好的发展 就要紧跟发展趋势 不断转型才能保持竞争力 在职场中占有一席之地 转型不是一件容易的事 涉及到转型 革新 就要突破现有的框架 必然
  • dreamweaver 正则表达式为属性值加上双引号_IT兄弟连 HTML5教程 HTML5表单 新增的表单属性3...

    9 novalidate novalidate是属性规定在提交表单时不应该验证form和input域 novalidate属性适用于的类型有 text search url telephone email password date pic
  • webService淘汰了吗?

    当代开发者们已经很少见到相关的webService开发了 那么是该技术已经被淘汰了吗 先让我们来看看其和http接口的优劣吧 这里着重说webService 该服务协议为SOAP 简单对象访问协议 说白了就是http POST的一个专用版本
  • DVWA-命令注入

    命令注入漏洞的函数 system exec passthru shell exec 与shell exec 功能相同 一 low 1 分析源码 使用的函数是shell exec 2 验证 3 漏洞测试 前面命令的输出结果作为后面命令的输入
  • 随机森林和神经网络有什么区别?

    随机森林和神经网络这两种广泛使用的机器学习算法有什么区别呢 我们什么时候应该使用神经网络 什么时候又应该使用随机森林 随机森林与神经网络哪个更好 这是一个常见问题 答案其实也非常简单 视情况而定 调皮 一起来看看何时使用随机森林好以及何时使
  • Golang大坑之循环goroutine闭包调用

    前言 回顾整个2022 突然发现我一篇博客都没写 趁着还没2022还没过去 赶紧水一篇博客 分享一下我最近学习到的一些东西 这次的主题是 Golang大坑之循环goroutine闭包调用 大家就当小故事来看吧 小美又写了bug 仔细看 这个
  • jmeter-Java关于MD5加密方法 以及16位32位互转

    MD5即Message Digest Algorithm 5 信息 摘要算法5 用于确保信息传输完整一致 是计算机广泛使用的杂凑算法之一 又译摘要算法 哈希算法 主流编程语言普遍已有MD5实现 将数据 如汉字 运算为另一固定长度值 是杂凑算