【Java小工匠聊密码学】--消息摘要--概述
1、消息摘要概述
数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。
2、消息摘要算法特点
2.1 变成输入、定长输出
无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出。
2.2 输入不同、摘要不同,输入相同、摘要相同
只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。这正是好的消息摘要算法所具有的性质:输入改变了,输出也就改变了;两条相似的消息的摘要确不相近,甚至会大相径庭。从理论上来说,不管使用什么样的摘要算法,必然存在2个不同的消息,对应同样的摘要。因为输入是一个无穷集合,而输出是一个有限集合,所以从数学上来说,必然存在多对一的关系。但是实际上,很难或者说根本不可能人为的造出具有同样摘要的2个不同消息。
2.3 单向、不可逆、散列值不同、原始值不同
消息摘要是单向、不可逆的。只能进行正向的信息摘要,而无法从摘要中恢复出任何的原始消息,甚至根本就找不到任何与原信息相关的信息。当然,可以采用强力攻击的方法,即尝试每一个可能的信息,计算其摘要,看看是否与已有的摘要相同,如果这样做,最终肯定会恢复出摘要的消息。但实际上,要得到的信息可能是无穷个消息之一,所以这种强力攻击几乎是无效的。
2.4 “碰撞” 难找到
好的摘要算法,没有人能从中找到“碰撞”,虽然“碰撞”是肯定存在的。即无法找到两条不同消息,但是它们的摘要相同。
3、消息摘要的分类
(1)MD(Message Digest) 消息摘要算法
(2)SHA(Secure Hash Algorithm) 安全散列算法
(3)MAC(Message Authentication Code) 消息认证码算法
4、消息摘要用途
一般地,把对一个信息的摘要称为该消息的指纹或数字签名,信息摘要算法的主要用途是信息完整性校验.
5. 散列算法破解
(1) 算法破解
已知数据A和消息的散列值,找到另外一个数据B和A的散列值相同。例如2005年2月,王小云破解SHA-1 算法。
(2) 假破解
根据数据库查询散列值,查询数据对应的明文。数据树数据越多破解的概率越大,例如密码使用md5加密,因为密码长度一般都是1-8位的,所以数据库可以穷举这些值,提供逆向查询。
如果读完觉得有收获的话,欢迎点赞、关注、加公众号【小工匠技术圈】
个人公众号,欢迎关注,查阅更多精彩历史!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python图像处理之图片验证码识别
在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract软件来识别验证码(数字加字母)。 我们在网上浏览网页或注册账号时,会经常遇到验证码(CAPTCHA),如下图: 本文将具体介绍如何利用Python的图像处理模块pillow和OCR模块pytesseract来识别上述验证码(数字加字母)。 我们识别上述验证码的算法过程如下: 将原图像进行灰度处理,转化为灰度图像; 获取图片中像素点数量最多的像素(此为图片背景),将该像素作为阈值进行二值化处理,将灰度图像转化为黑白图像(用来提高识别的准确率); 去掉黑白图像中的噪声,噪声定义为:以该点为中心的九宫格的黑点的数量小于等于4; 利用pytesseract模块识别,去掉识别结果中的特殊字符,获得识别结果。 我们的图片如下(共66张图片): 完整的Python代码如下: import os import pytesseract from PIL import Image from c...
- 下一篇
世界杯快到了,看我用Python爬虫实现(伪)球迷速成!
还有4天就世界杯了,作为一个资深(伪)球迷,必须要实时关注世界杯相关新闻,了解各个球队动态,这样才能在一堆球迷中如(大)鱼(吹)得(特)水(吹),迎接大家仰慕的目光! 给大家分享一个快速了解相关信息的办法:刷论坛!我们来一起做个虎扑论坛的爬虫吧! 抓包获取虎扑论坛相关帖子内容,逐条显示! 先来观察下网页,打开论坛首页,选择国际足球 然后往下拉,找到世界杯相关内容 这里就是我们的目标了,所有相关的新闻都会在这里显示,用F12打开“开发者工具”然后往下浏览看看数据包 注意箭头指向的那几个地方! 这就是刚才浏览的新闻所在的json包,来看看具体数据是什么 ok,标题、地址、发布时间包括来源都已经出现了!我们可以直接抓取json数据然后取出相关内容! 再进入具体新闻页面看看 所有的文本内容,都在 这个标签下的 标签内,我们可以用xpath直接取div下的所有文本内容! 这里就不一 一说明了,直接上代码,并录个小的GIF图片给大家看看效果 #@author Q群542110741 # -*- coding:utf-8 -*- import requests from lxml import et...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8