五分钟搞懂摘要算法

五分钟搞懂摘要算法摘要算法又称哈希算法 散列算法

大家好,欢迎来到IT知识分享网。

一.摘要算法和摘要

1.概述

摘要算法又称哈希算法、散列算法。摘要也称哈希值,表示输入任意长度的数据,都会输出固定长度的数据。通过摘要算法(比如MDS和SHA-1)就可以得到该哈希值。

2.特点

  • 长度固定,结果越长,认为摘要算法越安全* 原始数据不同,生成的摘要一定不同* 单项不可逆 3、作用

摘要只验证数据的完整性和唯一性,单项不可逆。 哈希值长度都是固定的:MD5输出128bit长度的二进制串,SHA-1输出160bit长度的二进制串。128bit指二进制位数是128。 (8bit=1byte128bit=16byte)。

4、误区

摘要只是用于验证数据完整性和唯一性的,不管原始数据是什么样的,得到的哈希值都是固定长度的,也就是说哈希值并不是原始数据加密后的密文,只是一个验证身份的令牌,所以我们无法通过摘要还原出原始数据,即单向不可逆,所以说摘要算法是加密算法是不严谨的。

二.目前常用的摘要算法

算法

输出长度

MD5

128bit

SHA-1

160bit

SHA-256

256bit

1.MD5

(1)MD5的用途
  • 验证文件完整性* 存储用户口令(比如密码)系统不用存储用户原始口令,而是存储用户原始口令的MD5,系统计算用户输入的原始口令的MD5并与数据存储的MD5进行对比,如果相同,则说明口令正确,反之则说明口令错误。
(2)彩虹表

MD5虽然不可逆,也无法通过摘要还原出原始数据,但不代表一定安全。由于字符串通过MD5计算的摘要是唯一的,那么MD5字典随着时间积累保存越来越多的MD5记录,通过穷举这个字典就可以找到密码。我们把这个字典称为彩虹表。即采用各种Hash算法生成的明文和密文的对照表。

(3)加盐或者base64–防止彩虹表穷举

抵御彩虹表攻击我们不能简单的记录原始口令的MD5值,需要让原始数据变得够长和够复杂。可以通过base64编码方法,对原始数据先进行base64编码,再MD5,即md5(base64(password))。也可以通过加盐的方法,对原始数据额外添加随机数salt,再MD5,即md5(salt+password)。Java代码如下:

 public static String md5(String string, String slat) {if (TextUtils.isEmpty(string)) {return "";}MessageDigest md5 = null;try {md5 = MessageDigest.getInstance("MD5");byte[] bytes = md5.digest((string + slat).getBytes());String result = "";for (byte b : bytes) {String temp = Integer.toHexString(b & 0xff);if (temp.length() == 1) {temp = "0" + temp;}result += temp;}return result;} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return "";} 

2.SHA-1

SHA-1算法也是一种哈希算法,输出160bit,它的同类型算法有SHA-256和SHA-512,输出的长度分别是256bit和512bit。SHA-1在Java中使用同MD5类似,Java代码如下:

 public static String sha(String string) {if (TextUtils.isEmpty(string)) {return "";}MessageDigest md5 = null;try {md5 = MessageDigest.getInstance("sha-1");byte[] bytes = md5.digest((string ).getBytes());String result = "";for (byte b : bytes) {String temp = Integer.toHexString(b & 0xff);if (temp.length() == 1) {temp = "0" + temp;}result += temp;}return result;} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return "";} 

网络安全成长路线图

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成hei客大神,这个方向越往后,需要学习和掌握的东西就会越来越多,以下是学习网络安全需要走的方向:

五分钟搞懂摘要算法

五分钟搞懂摘要算法

# 网络安全学习方法

上面介绍了技术分类和学习路线,这里来谈一下学习方法:

视频学习

无论你是去B站或者是油管上面都有很多网络安全的相关视频可以学习,当然如果你还不知道选择那套学习,我这里也整理了一套和上述成长路线图挂钩的视频教程,完整版的视频已经上传至CSDN官方,朋友们如果需要可以点击这个链接免费领取。五分钟搞懂摘要算法网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/113820.html

(0)
上一篇 2025-12-12 15:20
下一篇 2025-12-12 15:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信