从古至今数据安全的守护者:哈希算法和加密方法的数据安全进化之旅_绝对安全的哈希算法-程序员宅基地

技术标签: 2024年程序员学习  算法  安全  哈希算法  

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

SHA-3(Secure Hash Algorithm 3)是SHA算法家族的最新成员,于2015年发布。SHA-3使用Keccak算法作为其核心,提供了更高的安全性和更好的性能。相比SHA-2,SHA-3在抵抗碰撞攻。

“SHA-3更安全为什么没为普及?”

SHA-3是一种新的哈希函数家族,它在设计上与之前的SHA-2系列有所不同。虽然SHA-3提供了一些独特的优势,但在实际应用中为什么不普遍使用SHA-3可能有以下几个原因:

  1. 缺乏标准化:由于SHA-3是一种新兴的技术,目前还没有一个统一的标准来定义它的实现细节和规范。这导致了不同的实现之间存在差异,使得在不同平台上使用SHA-3时可能会出现兼容性问题。
  2. 性能问题:虽然SHA-3比SHA-2更快,但相对于传统的密码散列函数(如MD5、SHA-1等),SHA-3的计算速度仍然较慢。这使得在某些场景下,如需要高效处理大量数据的场景下,SHA-3可能不是最优选择。
  3. 缺乏广泛应用:由于SHA-3还处于发展阶段,目前还没有得到广泛的应用和验证。这也导致了一些企业和组织在使用密码散列函数时更倾向于使用已经经过验证的传统算法。
1.5、Bcrypt

Bcrypt是一种密码哈希函数,用于对密码进行加密和存储时使用。它采用单向哈希函数的方式,将密码转化为固定长度的哈希值。bcrypt主要用于密码的安全存储,以防止密码泄露时遭受暴力破解。

bcrypt的特点是它的计算成本可调,这意味着可以通过增加计算时间来增加哈希函数的强度。这对于防止暴力破解攻击非常有用,因为攻击者需要花费大量的时间和计算资源来尝试每个可能的密码。

与其他传统的哈希函数(如MD5和SHA)相比,bcrypt更加安全,因为它使用了“盐”(salt)和迭代的哈希过程。盐是一个随机生成的字符串,与密码组合在一起进行哈希,以增加密码哈希的随机性和复杂性。通过多次迭代哈希过程,bcrypt可以增加密码验证的计算成本,从而使破解密码变得更加困难。

1.6、SM3国密哈希算法

SM3哈希算法是一种密码散列函数,与SHA-256和SHA-384类似。它是由国家密码管理局制定的一种分组密码散列函数,用于数字签名、消息认证和其他安全应用。

1.7、小结

目前最常用的哈希算法之一是SHA-256(Secure Hash Algorithm 256位)。SHA-256是SHA-2系列中的一种算法,生成256位的散列值。

2、数据加密进化史

2.1、Base64编码

相信Base64大家并不陌生,不论你使用的是什么开发语言都会使用Base64。数据从可读变成一串不可读的串。所以很多人认为Base64是一种加密算法。其实Base64只一种编码并不是一种加密算法。

Base64是一种将二进制数据编码为ASCII字符的编码方式。在Java中,可以使用Base64类进行Base64编码和解码操作。Base64主要用于数据的传输和存储,不是一种加密算法。

2.2、对称加密算法

对称加密算法使用相同的密钥来进行加密和解密操作。在Java中,常见的对称加密算法包括AES(Advanced Encryption Standard)和DES(Data Encryption Standard)。对称加密算法适用于大量数据的加密和解密过程。

除了AES、DES外,还有一种对称加密算法SM4,也称为国密SM4,是中国国家密码管理局发布的一种分组加密算法。SM4是一种对称密钥算法,意味着加密和解密过程使用相同的密钥。

SM4算法采用分组加密模式,将明文数据按照固定长度的块进行分组,然后使用密钥对每个数据块进行加密和解密操作。SM4算法的分组长度为128位,密钥长度为128位,支持ECB(电子密码本模式)和CBC(密码分组链接模式)等加密模式。

2.3、非对称加密算法

非对称加密算法使用一对密钥,包括公钥和私钥。公钥用于加密数据,私钥用于解密数据。在Java中,常见的非对称加密算法包括RSA(Rivest-Shamir-Adleman)和DSA(Digital Signature Algorithm)。非对称加密算法常用于数据传输中的密钥交换和数字签名。

除了RSA、DSA外,还有一种非对称加密算法SM2,SM2算法是中国国家密码管理局制定的一种椭圆曲线公钥密码体制,用于数字签名、密钥交换等安全通信场景。它基于椭圆曲线密码学原理,提供了一种安全且高效的非对称加密方法。

2.4、数字信封技术(对称+非对称)

数字信封技术是一种结合了对称加密和非对称加密的加密方案,用于保护数据的机密性和完整性。它的基本原理如下:

  • 生成密钥对:首先,接收方生成一对非对称密钥,包括公钥和私钥。公钥用于加密,私钥用于解密。
  • 生成对称密钥:发送方生成一个随机的对称密钥,用于对待发送的数据进行加密。
  • 加密数据:发送方使用对称密钥对数据进行加密,得到加密后的密文。
  • 加密对称密钥:发送方使用接收方的公钥,对对称密钥进行加密,得到加密后的密文。
  • 创建数字信封:发送方将加密后的数据和加密后的对称密钥一起组成数字信封。
  • 发送数据:发送方将数字信封发送给接收方。
  • 解密过程:接收方使用私钥解密加密的对称密钥,得到原始的对称密钥。
  • 解密数据:接收方使用解密后的对称密钥对密文进行解密,得到原始的数据。

优点:

  • 保证数据机密性:通过对称加密算法加密数据,确保只有拥有正确对称密钥的接收方能够解密数据。
  • 公钥加密的效率优势:使用非对称加密算法加密对称密钥,非对称加密算法通常较对称加密算法更安全,但计算复杂度较高。通过结合使用,能够充分发挥非对称加密算法的优势,同时提高效率。
  • 数字签名:数字信封技术可以与数字签名结合使用,通过对数字信封的加密进行数字签名,确保数据的完整性和身份验证。

缺点:

  • 密钥管理复杂性:数字信封技术涉及多个密钥,包括对称密钥和非对称密钥,密钥的生成、分发和管理都需要谨慎处理,增加了密钥管理的复杂性。
  • 性能开销:由于数字信封技术同时使用了对称加密和非对称加密,对计算和存储资源有一定的开销,尤其是在大量数据加密和解密的情况下。
2.5、自定义加密算法

加密算法可以包括数据转换、替换、混淆、扩散和迭代等操作。设计时需要注意算法的复杂度和安全性,确保算法能够抵抗常见的攻击方式。

3、数字证书

3.1、MD5被取代

MD5在数字证书领域的使用已经被废弃多年。具体来说,MD5作为数字证书中签名算法的使用在2004年就已经被宣布不安全,并逐渐被取代。

在2004年,一项名为"MD5漏洞攻击"(MD5 Collision Attack)的研究表明,通过特定的方式可以生成两个不同的输入,但它们的MD5哈希值是相同的。这意味着恶意攻击者可以伪造数字证书,并使用相同的MD5哈希值来欺骗系统。这导致了对MD5在数字证书中的使用的广泛关注和警示。

随后,各个证书颁发机构(CA)和浏览器厂商纷纷采取行动,停止使用MD5作为数字证书的签名算法。例如,微软于2008年宣布停止接受使用MD5签名的数字证书,Mozilla、Google、Apple等也相继跟进,禁止或限制了MD5签名的数字证书的信任。

3.2、SHA-1被取代

SHA-1在数字证书领域的使用逐渐被废弃,并在不同的阶段有不同的时间表。以下是SHA-1在数字证书中逐步被废弃的重要时间节点:

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。

最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

学习路线图

其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。

相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

网络安全工具箱

当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。

项目实战

最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-Ix47UUx0-1713216165580)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_54206202/article/details/137804804

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文