MD5加密算法

如何在 CMD 窗口中校验文件的 MD5 值 MD5(Message Digest Algorithm 5)是一种广泛使用的哈希算法,它可以将任意长度的数据映射为一个128位的哈希值(也称为散列值)。MD5 校验主要用于验证文件的一致性和完整性。通过比对下载文件的 MD5 值和源文件的 MD5 值,可以确认文件是否被篡改。 阅读详情

加密算法是指通过md5工具将密码转换成16进制的字符串,一共32位长度

接下来的代码主要涉及四种加密方式:
1 自定义加密解密

2 普通md5加密

3,md5 加盐加密

4 文件加密,文件加密还是比较靠谱的,不容易被密码撞库破解

package com.daybreak.util;

import java.io.File;
import java.io.FileInputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5技术加密解密
 */
public class Md5 {
	/***
	 * MD5加码 生成32位md5码
	 */
	/*public static String string2MD5(String inStr){
		MessageDigest md5 = null;
		try{
			md5 = MessageDigest.getInstance("MD5");
		}catch (Exception e){
			System.out.println(e.toString());
			e.printStackTrace();
			return "";
		}
		char[] charArray = inStr.toCharArray();
		byte[] byteArray = new byte[charArray.length];

		for (int i = 0; i < charArray.length; i++)
			byteArray[i] = (byte) charArray[i];
		byte[] md5Bytes = md5.digest(byteArray);
		StringBuffer hexValue = new StringBuffer();
		for (int i = 0; i < md5Bytes.length; i++){
			//将数组里的数 按位 与 ff 转换成16进制
			int val = ((int) md5Bytes[i]) & 0xff;
			if (val < 16)
				hexValue.append("0");
			hexValue.append(Integer.toHexString(val));
		}
		return hexValue.toString();

	}*/

	/**
	 * 自定义实现的加密算法
	 * 加密解密算法 执行一次加密,两次解密
	 */
	public static String convertMD5(String inStr){

		char[] a = inStr.toCharArray();
		for (int i = 0; i < a.length; i++){
			a[i] = (char) (a[i] ^ 'x');
		}
		String s = new String(a);
		return s;

	}

	//加盐以后
	/**
	 * 加密字符串普通加盐
	 * @param password 待加密数据
	 * @param salt 盐
	 * @return
	 */
	public static String textEncryptMD5(String password,String salt) {
		MessageDigest md5 = null;
		try {
			md5 = MessageDigest.getInstance("MD5");
			md5.update(salt.getBytes());
			byte[] bs = md5.digest(password.getBytes());
			StringBuffer hexValue = new StringBuffer();
			//循环将字节数组转换成16进制字符串
			for (int i = 0; i < bs.length; i++) {
				int val = ((int) bs[i]) & 0xff;
				if (val < 16)
					hexValue.append("0");
				hexValue.append(Integer.toHexString(val));
			}
			return hexValue.toString();
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "";
	}


	/*
	* 还可以通过加密文件来进行加密
	*
	* *//**
	 * 加密文件,不加密
	 * 1.获取文件的读取流
	 * 2.不停的读取流中的"内容"放入字符串,放一部分就"更新"一部分.直到全部完毕
	 * 3.然后调用md5.digest();就会得到有内容的字节数组了.
	 ** @param--file
	 * @return
	 * @throws Exception


*/
	public static String fileEncryptMD5(File file) throws Exception {
		String MD5 = "";
		MessageDigest md5 = MessageDigest.getInstance("MD5");
		FileInputStream fis = new FileInputStream(file);
		byte[] bytes = new byte[1024 * 5];
		int len = -1;
		while ((len=fis.read(bytes))!=-1) {
			md5.update(bytes, 0, len);
		}
		fis.close();
		byte[] digest = md5.digest();
		for (int i = 0; i <digest.length; i++) {
			int n = digest[i] & 0x000000ff;
			String s = Integer.toHexString(n);
			MD5 += s;
		}
		return MD5;
	}

	// 测试主函数
	public static void main(String args[]) throws Exception {
		String s = new String("1233");
		System.out.println("原始:" + s);
		//System.out.println("MD5后:" + string2MD5(s));
		//加盐后 普通的字符串还是能通过被撞库破解,但是特殊意义的盐就不容易被破解 普通加盐
		System.out.println("加盐后的MD5");
		System.out.println(textEncryptMD5(s,"lybb"));
		System.out.println("加密文件进行的加密");
		// 加密文件加密
		File file =new File("C:\\Users\\ly\\Desktop\\salt.txt");
		System.out.println(fileEncryptMD5(file));
		file =new File("C:\\Users\\ly\\Desktop\\salt2.txt");
		System.out.println(fileEncryptMD5(file));
		//经过测试加密文件加密的比较安全性高一点
		//在线加密解密网站 https://www.cmd5.com/
		System.out.println("-----自定义的加密解密");
		System.out.println("加密的:" + convertMD5(s));
		System.out.println("解密的:" + convertMD5(convertMD5(s)));

	}
}

在这里插入图片描述

MD5加密算法及Java实现 MD5加密算法及Java实现 上个学期在学数据库的时候,大作业是用Java Web+MySQL实现一个简易的系统,其中老师就提到了MD5算法,用来将用户提交的密码进行加密后放在数据库中,以防被泄露。在网页上进行表单校验时,也是将数据库中用户的散列值与用户提交的密码进行映射后得到的散列值进行比对。java.security中提供了一个MessageDigest类,提供了很多此类密码散列函数,如MD5和SHA(安全散列算法 Secure Hash Algorithm)等,所以只需要调用即可,不用亲自实现。 这个 阅读详情

相关推荐

iOS 加密算法之MD5加密使用

软件开发过程中,对数据进行加密是保证数据安全的重要手段,常见的加密有Base64加密和MD5加密。Base64加密是可逆的,MD5加密目前来说一般是不可逆的。我们在开发一款iOS App过程中,对于发送的请求,其中有个“sign”的字段,这个key对应的value是MD5加密的字段。 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。

王颜华的博客 3460

md5加密算法

理解md5

LUOZONGW的博客 9693

[C++] MD5加密算法原理及实现

参考文献: 1. RFC1321 - R. Rivest 2. 中山大学 蔡国扬 老师的 Web安全课件 算法概述 MD5 使用 little-endian,输入任意不定长度信息,以 512 位长进行分组,生成四个32位数据,最后联合起来输出固定 128 位长的信息摘要。 MD5 算法的基本过程为:求余、取余、调整长度、与链接变量进行循环运算、得出结果。 在 RFC1321 中,算法共分

从入门到扑街 3546

MD5数据加密方法

什么场景需要使用数据加密呢?比如秘密数据传输、用户密码加密存储等等数据传输可使用密钥对的方式进行加密解密,使用签名方式验证数据是否可靠,而密码加密存储可使用MD5等一些算法对数据进行单向加密。

weixin_52115456的博客 2万+

Zotero插件安装保姆级教程:从Jasminum到Sci-Hub,一站式搞定文献管理

本文提供Zotero插件安装的保姆级教程,从Jasminum到Sci-Hub,一站式搞定文献管理。通过详细配置和实战案例,帮助用户高效构建文献工作流,提升研究效率。重点介绍了元数据抓取、PDF管理、文献分析和知识产出等关键插件的使用方法。

weixin_42531516的博客 169

Silly Tavern(酒馆)AI 角色扮演下载与安装教程(Windows本地部署)

SillyTavern是一款开源AI角色扮演前端工具,支持沉浸式对话和长期角色互动。本文详细介绍了在Windows系统F盘部署SillyTavern的完整流程,包括下载项目、安装Node.js和Git环境、配置路径、启动服务等关键步骤,并特别说明非系统盘路径可能遇到的npm安装问题及解决方法。成功启动后,用户可通过浏览器访问本地地址使用该工具进行AI角色扮演互动。

Tan3851的博客 1万+

MD5加密算法详解

一. 引言 对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改、验证文件完整性,甚至将MD5当作加密算法使用。 MD5虽不陌生,但不是所有研发人员都了解其算法原理,通过这篇文章详细学习MD5 摘要算法。 认识 MD5 掌握 MD5 算法原理 编码实现 MD5 摘要算法 使用Java开发语言 编码实现MD5摘要算法 二. MD5简介 MD5全称Message Digest Algorithm 5,翻译过来就是:消息摘要算法第5版,是计算机安全领域广泛使

景川的博客 2604

使用pdfBox实现pdf转图片出现中文方块乱码 简单修改源码解决

参考文章 问题排查:使用pdfbox将pdf转image时STSong-Light字体中文乱码 pdfbox版本是2.0 日志中打印出类似这样的日志(例:Using fallback XXX for CID-keyed font STSong-Light),就说明系统没有安装STSong-Light字体,pdfbox使用XXX字体来替代了。如果出现方块,就说明没有这种字体,并且替代字体也没有,日志也有相应的其他提示。 正常操作就是安装缺失的 STSong-Light 字体,但是在网上搜到的都是 STSong

aji_csdn的博客 5266

常见的加密算法原理与实现:MD5加密

系列三:MD5加密一、基本介绍二、加密原理2.1、处理原文2.2、设置初始值2.3、循环加工2.4、拼接结果 一、基本介绍 MD5加密算法,其全称是Message-Digest Algorithm 5,通常被称为信息摘要算法,所谓的信息摘要就是把明文内容按一定规则生成一段哈希(hash)值,即得到这段明文内容的信息摘要。利用MD5可以基于任意长度的明文字符串生成128位的哈希值,结果唯一且不可逆,因此MD5经常被用于防止信息被篡改、数字签名、以及对明文进行加密等场景。 二、加密原理 MD5算法加密的过程分为

仙路尽头谁为峰 1万+

飞秒激光加工石英玻璃的COMSOL多物理场仿真研究

多物理场仿真是现代工程研发的重要工具,通过耦合电磁、热传导和流体力学等物理场,可以准确预测复杂工况下的材料行为。COMSOL Multiphysics作为主流仿真平台,其双温模型能精确描述飞秒激光加工中的电子-声子耦合过程。这种仿真技术可显著降低实验成本,在微纳加工领域尤为关键。针对石英玻璃这类光学材料,仿真能有效优化激光参数,实现亚微米级精度的冷加工。研究显示,结合移动网格技术和自定义材料状态函数,可以准确预测烧蚀形貌与热影响区分布,为光学器件和微流控芯片制造提供可靠工艺指导。

weixin_29290863的博客 240

NPP/VIIRS夜间灯光数据下载和介绍

夜间灯光数据作为当前比较火热的研究数据,与其他遥感数据不同,它是通过DN值来体现所携带的信息,最常用的使用月度数据。 该数据数据量大,下载慢,相对来说较难快速获取。 一、数据下载 美国国家海洋大气管理局NOAA下属的NCEI国家环境信息中心Earth Observation Group。 二、月度数据文件介绍 从网站上下载的逐月的灯光数据文件是压缩包的形式,每月的数据包括vcm, vcmsl两个版本的压缩包,其中vcm版本排除了受杂散光影响的数据,vcmsl版本为辐射值经过杂散光校正程序后的数

端木宛白的博客家园 7376

Java 实现 MD5 加密算法

MD5 消息摘要算法,英文:MD5 Message-Digest Algorithm ,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5 是单向加密不可逆的,也就是常说的非对称加密,常用于用户密码的加密,这样即使密码泄露也不知道对应的明文信息,有效的保护系统和用户的隐私信息。MD5 算法产生的是一个 128 位的散列值,128 位是指的二进制中的 128 位,具体占 16 字节(每个字节可以表示为 8 位二进制数)。

grammer_du的博客 8079

OpenAI Function Calling 实战:让 Agent 自动调用外部 API 接口

在 2023 年 6 月之前,大语言模型(LLM)的能力边界是清晰的:它能说会道,能写诗作赋,也能帮你润色文案。但如果你问它"北京现在天气怎么样",它要么答不上来,要么基于过时的训练数据给你一个错误答案。原因很简单——LLM 的训练数据是有截止日期的,它活在"过去"。2023 年 6 月,OpenAI 在 GPT-4 的更新中引入了 Function Calling 功能,彻底改变了这一局面。Function Calling(也叫 Tool Use 或工具调用)是一种让 LLM 与外部系统交互的机制。

2201_76125393的博客 86

MD5加密算法与实现

MD5加密算法与实现 文章目录MD5加密算法与实现MD5算法简介MD5算法的优势MD5算法流程代码实现 MD5算法简介 MD5的全称是Message-Digest Algorithm,是Hash算法中的一种重要算法,具有单项加密、加密结果唯一、安全性能好等特点。MD5以512位分组来处理输入的信息,且每一分组又被划分为16个 32位子分组,经过了一系列的处理后 ,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 MD5算法的优势 (1)容易计算及不可逆性: 现在主流的

qq_52199692的博客 2179

arcgis计算栅格平均值

打开FC栅格数据和非水体矢量数据 利用矢量数据提取对应栅格的非水体部分 2.1打开空间分析工具à提取分析à按掩膜提取 输入对应栅格数据和矢量数据 2.2提取结果如下 进行计算FC平均值 3.1打开空间分析工具à多元分析à波段集统计 输入对应栅格和输出路径 3.2统计结果如下 ...

Z_W_H_的博客 5370

EtherCAT报文-BRD(广播读)抓包分析

EtherCAT报文之BRD(广播读)报文Wireshark抓包分析。

kevin1499的博客 1212

C#常用的加密算法之一 MD5

C#常用的加密算法之一 MD5 参考文章 MD5加密概述,原理及实现 C#常用的加密算法:MD5、Base64、SHA1、SHA256、HmacSHA256、DES、AES、RSA MD5概述 MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)。 MD5特点 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样 一个MD5理论上的确是可能对应无数多个原文的,因为MD5是有限多个的而原文可以是无数多个。比如主流使用

XHeineken的博客 7405

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MD5加密算法原理

MD5加密算法原理2006年10月10日 星期二 15:33   MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security I

小剑 专栏 1101

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MD5加密算法简单示例

MD5加密算法简单示例         现在网络上一般的网站,只要功能稍微完善一点的,都需要用户进行注册,提供诸如用户名、用户密码、电子邮件、甚至是电话号码、详细住址等个人隐私信息,然后才可以 享受网站提供的一些特殊的信息或者服务。为了增加安全性,有必要对数据库中的隐私数据进行加密。         MD5算法,即“Message-Digest Algorithm 5(信息-摘要算法)”

NetSuite 张老师 4155

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

MD5加密算法(python)

MD5加密算法属于单向加密算法。 单向加密算法是中在加密过程中不适应秘钥,将数据加密处理成加密数据,加密数据无法被解密。因为无法通过加密数据反向得到原来的内容,单向加密算法又被称为不可逆加密算法。单向加密算法一般使用哈希算法来生成密文,又称为哈希加密算法。 由于MD5具有不可逆解密的特性,它被广泛应用于密码验证和数据完整性的验证。在使用时,一般将新注册用户的密码通过MD5加密后存储到数据库中,当用户登录时,通过验证MD5来检查用户输入密码的正确性。 #!/usr/bin/python import

乐以风的博客 4262

Android MD5加密算法

比较简单,直接贴代码 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5 { public static String getMD5(String content) { try { MessageDigest digest =

幻想的旋律 2240

讲道理,MD5 到底是不是加密算法?

点击上方蓝字设为星标下面开始今天的学习~在回答这个问题之前,我们先分别来了解一下两个知识点:什么是 MD5 算法?什么是加密算法?一、MD5算法MD5 ...

程序员吴师兄的博客 9068

md5加密算法c语言版

md5加密算法c语言版 from:http://blog.sina.com.cn/s/blog_693de6100101kcu6.html 注:以下是md5加密算法c语言版(16/32位) --------------------------------------------------- 网上找到的md5函数的实现,包括三个文件,依次如下: 头文件 TL_MD5.h 1 [cpp] 2 #ifndef MD5_H 3 #define MD5_H 4 5 typ.

xuerongdeng的专栏 4335

MD5加密算法简介

MD5加密算法简介一、算法实现(转载自绿色兵团) 1、MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果 是448。    即数据扩展至K*512+448位。即K*64+56个字节,K为整数。    具体补位操作:补一个1,然后补0至满足上述要求   2、补数据长度:    用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数据 就被填    补成

shawls的专栏 1665

MD5 加密算法详解

MD5 加密算法详解一、概念二、算法原理2.1、MD5(32)、MD5(16)2.2、MD5算法 4步流程三、 其他3.1、MD5的作用3.2、MD5可以作为数据库主键,唯一吗? 一、概念 MD5算法是单向散列算法的一种。单向散列算法也称为HASH算法,是一种将任意长度的信息压缩至某一固定长度(称之为消息摘要)的函数(该压缩过程不可逆)。在MD5算法中,这个摘要是指将任意数据映射成一个128位长...

暴暴风的博客 1万+
上一篇: ssm框架引入定时任务
下一篇: 基于spring-security的权限认证框架
凌晨里的无聊人
博客等级 码龄8年 2320粉丝 206原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨里的无聊人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值