html数据摘要算法,Hash函数和消息摘要算法(示例代码)
一、Hash函数
哈希函数就是能将任意长度的数据映射为固定长度的数据的函数。哈希函数返回的值被叫做哈希值、哈希码、散列,或者直接叫做哈希。
二、消息摘要
将长度不固定的消息(message)作为输入参数,运行特定的Hash函数,生成固定长度的输出,这个输出就是Hash,也称为这个消息的消息摘要(Message Digest)
信息摘要算法是hash算法的一种,具有以下特点:
无论输入的消息有多长,计算出来的消息摘要的长度总是固定的,计算出的结果越长,一般认为该摘要算法越安全,MD5 128位 SHA-1 160位
输入的消息不同,产生的消息摘要必不同,输入的消息相同,产生的消息摘要一定是相同的
单向不可逆
三、MessageDigest
java中通过MessageDigest来为程序提供消息摘要算法的功能,例如md5 和sha,这个经常会使用的到,这里就不多解释了
标记解释
通过入参的算法名获取MessageDigest实例,入参例如:MD2 MD5 SHA-1 SHA-256 SHA-384 SHA-512
使用指定的字节数组更新摘要
完成hash计算,只调用一次,在调用 digest()方法之后,MessageDigest 对象被重新设置成其初始状态
重置摘要
四、使用
由于commons-codec包中已经封装好了一些使用的方法,引入依赖,直接调用即可
4.1、依赖
commons-codec
commons-codec
1.4
4.2、工具类
package com.treebear.starwifi.common.util;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**
* @author DUCHONG
* @since 2018-05-02 9:18
**/
public class EncryptionUtils {
public static String base64Encode(String data){
return Base64.encodeBase64String(data.getBytes());
}
public static byte[] base64Decode(String data){
return Base64.decodeBase64(data.getBytes());
}
public static String md5(String data) {
return DigestUtils.md5Hex(data);
}
public static String sha1(String data) {
return DigestUtils.shaHex(data);
}
public static String sha256Hex(String data) {
return DigestUtils.sha256Hex(data);
}
public static String getMD5File(File file){
FileInputStream fis=null;
try {
fis=new FileInputStream(file);
return DigestUtils.md5Hex(fis);
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if(fis != null){
try {
fis.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
public static void main(String[] args) {
//long start= System.currentTimeMillis();
System.out.println(getMD5File(new File("F:\\\\temp\\\\WEB-INF.zip")));
System.out.println(getMD5File(new File("F:\\\\temp2\\\\WEB-INF.zip")));
//long end=System.currentTimeMillis();
//System.out.println("共耗时:"+(float)(end-start)/1000+"s");
}
}
html数据摘要算法,Hash函数和消息摘要算法(示例代码)相关推荐
- 密码学基础知识(六)Hash函数与消息认证
Hash函数和消息认证 先说Hash 哈希函数,可以将任意长度的消息压缩为某一固定长度的消息摘要函数.一句话,Hash简直了. 当然有逆天的一面就有大缺点,过程不可逆.傻了吧,哈哈. Hash的性质: ...
- python 更新数据库历史_python 实现数据库中数据添加、查询与更新的示例代码
一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...
- python查询数据库后更新_python 实现数据库中数据添加、查询与更新的示例代码...
一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...
- python代码中怎么增加数据_python 实现数据库中数据添加、查询与更新的示例代码...
一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...
- python qq自动发消息软件_Python之qq自动发消息的示例代码
准备:pip install win32gui 可能遇到的麻烦: No module named 'win32gui' 的解决方法(踩坑之旅) 源码: import win32gui import w ...
- 企业微信机器人脚本python_python实现企业微信定时发送文本消息的示例代码
企业微信定时发送文本消息 使用工具:企业微信机器人+python可执行文件+计算机管理中的任务计划程序 第一步:创建群机器人 选择群聊,单击鼠标右键,添加群机器人. 建立群机器人后,右键查看机器人,如 ...
- ABOV单片机UART串口通讯中Printf函数实现讲解及示例代码-[MC96F6332D]
一.准备工作 1.KEIL C51编译环境 2.CodeGen8 代码生成器 3.MC96F6332D 开发板 4.USB-OCD II仿真器 二.生成串口代码 1.在CodeGen8 代码生成器的外 ...
- 足球数据【文字直播】API调用示例代码
分享[文字直播]接口调用的示例代码 import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; import java ...
- rocktmq 消息延时清空_使用Kotlin+RocketMQ实现延时消息的示例代码
一. 延时消息 延时消息是指消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费. 使用延时消息的典型场景,例如: 在电商系统中,用户下完订单30分钟内没支付, ...
最新文章
- Bounce 弹飞绵羊
- maven中pom.xml中的scope讲解
- 快速简易的分解歌词文件
- 开源项目选择许可证License
- Java从零开始学三(public class和class)
- MySQL基本语句和连接字符串
- SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新
- 如何在网上隐藏自己的IP地址
- 笔记本电脑触摸板手势教程——快捷操作
- 计算机论文鉴定表指导教师评语,毕业论文指导老师评语|毕业论文鉴定表评语...
- 加息对银行股影响|加息是对银行股的利好
- 第七周助教工作总结——NWNU李泓毅
- 微信小程序之获取当前位置附近的美食、酒店、娱乐、超市等,并显示标记
- 【meArm机械臂】第一篇·结构设计及搭建
- 寒假总结 22-1-9
- ORA-01918: user hr does not exist 解决办法
- html5 足球比赛阵容图,五人足球战术阵型图文全解
- 装饰模式--小美的生日蛋糕
- USB限流IC,过流保护芯片
- 成功的经验 失败的教训
热门文章
- AI 新基建怎么做,腾讯云正式公布全景布局
- 珍稀干货!阿里 Web 音视频开发趟坑指南
- 女明星因自拍瞳孔倒影暴露住址惨遭跟踪,一张照片是怎么出卖你?
- 华为双 11 发 20 亿奖金!?
- 对话英特尔高级副总裁 Raja:软件将为硬件释放无限潜力
- Python 最抢手、Java 最流行、Go 最有前途,7000 位程序员揭秘 2019 软件开发现状...
- AI 改写《权力的游戏》结局,和编剧比谁更烂?
- 两万字深入解密 Go 语言接口的那些事儿 | 技术头条
- 字节跳动(今日头条),战斗力为何如此凶猛?| 畅言
- VS Code Java 开发指南!