一.摘要算法和摘要
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客大神,这个方向越往后,需要学习和掌握的东西就会越来越多,以下是学习网络安全需要走的方向:
# 网络安全学习方法
上面介绍了技术分类和学习路线,这里来谈一下学习方法:
## 视频学习文章来源:https://www.toymoban.com/news/detail-740634.html
无论你是去B站或者是油管上面都有很多网络安全的相关视频可以学习,当然如果你还不知道选择那套学习,我这里也整理了一套和上述成长路线图挂钩的视频教程,完整版的视频已经上传至CSDN官方,朋友们如果需要可以点击这个链接免费领取。网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!文章来源地址https://www.toymoban.com/news/detail-740634.html
到了这里,关于五分钟搞懂摘要算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!