千万别再用了,这些加密算法

2024-05-29 18:08

本文主要是介绍千万别再用了,这些加密算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


🎈 作者:Linux猿

🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊!

🎈 关注专栏:Linux 技术 (优质好文持续更新中……)🚀

🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬


目录

🍓一、消息摘要算法

✨1.1 特性

✨1.2 在线计算摘要

🍓二、对称加密算法

✨2.1 特性

✨2.2 在线加解密

🍓三、非对称加密算法

✨2.2 特性

✨2.3 在线加解密

🍓四、不安全的加密算法

✨4.1 DES

✨4.2 3DES

✨4.3 md2、md4、md5

🍓五、总结


通常意义上,加密算法可以分为三大种类:消息摘要算法、对称加密算法和非对称加密算法。下面先来看一下这三种加密算法。

🍓一、消息摘要算法

消息摘要算法是将一段信息经过加密后产生一段固定长度的字符串,比如:128 位、256位长度。

图1 消息摘要算法加密过程

✨1.1 特性

(1)相同信息加密后产生的字符串相同;

(2)具有不可逆性,不能从加密后的字符串推到出原消息;

(3)可以用于数字签名;

✨1.2 在线计算摘要

下面直接来看一个例子,如下所示:

图2 在线计算摘要

上图中,使用 MD5 算法对 "CSDN Linux猿" 进行了加密,可以看到,哈希值为:48e93a303a9454a94697e1f86056f54a,这个哈希值具有唯一性。

🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶

🍓二、对称加密算法

对称加密算法是指加密秘钥和解密秘钥都是同一个秘钥的加密算法。

图3 对称加密算法原理

✨2.1 特性

(1)只有一个密钥,既用于加密,也用于解密;

(2)加/解密速度较快;

✨2.2 在线加解密

下面直接来看一个例子,如下所示:

图4 在线对称加解密过程

 在上图中,对明文 “CSDN Linux猿” 使用密钥“Linux”,加密算法 AES 进行了加密。在解密过程中,使用同样的密钥“Linux”进行了解密,得到了原来的明文,这就是对称加密算法加解密原理。

🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶

🍓三、非对称加密算法

非对称加密算法是指加密秘钥和解密秘钥不是同一个秘钥的加密算法。

图5 非对称加密算法

✨2.2 特性

(1)有两个秘钥,公钥用于解密,私钥用于加密,私钥一般不公开;

(2)信息经过公钥加密后,私钥能够解密,获取原消息;

(3)加/解密速度较慢;

✨2.3 在线加解密

下面直接来看一个例子,如下所示:

首先,需要生成公钥和私钥,分别用于加密和解密,公钥如下所示:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1ZNOaC++tCgxjKRK/k84
+h7klSMgrLi4efoZ+ib5ASKdvXVCpc/Nah/smTJcjztOjgWp4cesVWuqH92m0zlq
PySFcMSDN3/RydBuUbQjisOqmQrY+4VEs0R+eVs2BuPJkfDnqP+LKk7Act56NqkO
X9KoY4OV3Mqa8t2Os7vRBy+E2SdJeAvFEANVrv8FipXk8omxdNiixho4A7tKLEdM
uI9BMTPGsz97S9OGwTli6XNjjU5mkMChr6G6XbRvewWh7W8K7JboDoqLn5xVWyp4
D1HwhKipE0B1+nl84p1tS6evhybJflBIYtCU01skMWm2+4/r2IHUwjDLQ7CnYP6J
cQIDAQAB
-----END PUBLIC KEY-----

私钥如下所示: 

-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVk05oL760KDGM
pEr+Tzj6HuSVIyCsuLh5+hn6JvkBIp29dUKlz81qH+yZMlyPO06OBanhx6xVa6of
3abTOWo/JIVwxIM3f9HJ0G5RtCOKw6qZCtj7hUSzRH55WzYG48mR8Oeo/4sqTsBy
3no2qQ5f0qhjg5Xcypry3Y6zu9EHL4TZJ0l4C8UQA1Wu/wWKleTyibF02KLGGjgD
u0osR0y4j0ExM8azP3tL04bBOWLpc2ONTmaQwKGvobpdtG97BaHtbwrslugOiouf
nFVbKngPUfCEqKkTQHX6eXzinW1Lp6+HJsl+UEhi0JTTWyQxabb7j+vYgdTCMMtD
sKdg/olxAgMBAAECggEAHJLYqpe4q+G0v1w7rEptFQmNC2bnuDP+elM7pnwQVFaN
RAusHwLuOISM4vIZ8A+/MsEPOWW9aLA+0oSVDS1hSZFZSP0BkStIpfd8yvGOz8Hd
0Rvia8QorNM9GH9bexB+p0fTtoh51e8zUCrzrtxvT+KfJLE2G5P/pv59WQ6HqK40
J60x8XVJg1lngDO518LL1EIFR3/UNkyN3F1inw2CDwBAfvxSR4wTxYkGSQBbRzrK
NROfXkYKpvWJfdG0UM7c1MZPNpUsN8izkxRUN2viNvWW3JCJvI+UFjld7PPyxxwM
5mQ7MM+/e1ozhmUvUJ1FgfqVgs7cDRAS6onn+R7xAQKBgQD41PbKDbIU/W1AIC0q
0p+ERNFtFCUJ1naI4jr8v1vFxCrJ6P3kDBWzYPArG6XBcuAHqDPhw0ExDTTOw1rQ
+PNgDNN6VUMp6mujuYNucYlqsMtl0IYPpBWjqNWToNKi/zeFThFIdOOwVkWUReN3
+7qsHrIFRqR7H/kkvNc+JQcbZwKBgQDbulb9lg04skR7lX/PK+ogeP6HXq8NFA4S
11zUEdJEuIeEYnbIYSNgoSvjh3wl6ckKJaJUoW1tc7RhsdkW9dUhEgjDImkmZ7bd
vqAp1vCncmKidzBuEt247Fek3jvZZEwTunPSpDMgIjdqHKEVJl4L0acGaY/WA/cv
F8JyfSqFZwKBgERy8OBsHAzCGgeF0mbxQYg1FhcXb4jhQgItmWRlj207pTmdqhnN
aTrK88Yn+NTaMN5qWrtD5u8DXv9xpc3ObcSCQrpoMe2Z2rpTEeCTwuVidNExJ2+u
B3XZv8a4erjz0+YLr51q6idb1BARmZ0r1hH676Wb5SsphHOiruMddHMJAoGBANEM
qFb7u/iFIsKxqbfhgA8FDqScYM+AlSM34wmhKvxW1BgP1hMu2AnHTYpcDLHFi5Ar
3hXGv+Wyf5uzKWe+29dq4QtGYeQ4KLMv+hHUfYHSQiVwYJNZP7oAoiIpjad21Sqv
6iIuNrYL180ND/SfXDrCbLadGEv12ebkJAvpKdthAoGAMROodRdek5W85EyK70WT
WKBLb4X1+KRqjqmNCnv7LYJe4IMiX+hQ8t5yBgQbGtnD/s7KR9nkrfdPqnY1zoLC
6Fg8A0ngNTWQAMjAjkGTWbwF5dfnJrYNthmAJtjbdvYEejYTQrfe+o8sgVehFJFk
rAfPXxAuzK+o4m5vSivrAnY=
-----END PRIVATE KEY-----

 使用公钥对 “CSDN Linux猿”,加密算法 RSA 进行加密,如下所示:

 使用私钥对加密后的数据进行解密,如下所示:

上图中,将密文解密为 “CSDN Linux猿”。

 

🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶

🍓四、不安全的加密算法

下面就来看一下哪些加密算法不建议再使用了。

✨4.1 DES

DES 是数据加密标准(Data Encryption Standard)的缩写,是一种对称密钥加密算法。

1976年美国联邦政府将其确定为国家标准。但是,在1999年1月,distributed.net 与电子前哨基金会合作,在22小时15分钟内公开破解了一个 DES 密钥。

注意:通常说的加密算法被破解,一般是该加密算法有一组或几组密钥能在有限的时间内找到解,并不是说加密算法完全不能用了。

✨4.2 3DES

3DES 是三重数据加密算法(Triple Data Encryption Algorithm)的缩写,是一种对称加密算法。

从名称就可以知道,DES 和 3DES 有一定关系,3DES 比 DES 安全强度更高,3DES 是对每个数据块应用三次 DES,具有三个独立密钥。

但是,在 2017 年 3DES 已被 NIST 弃用,自 OpenSSL 1.1.0 版 起,默认不包含 3DES,并将其视为“弱密码”。

✨4.3 md2、md4、md5

从名称上来看,md2、md4、md5 显然是一个系列,MD 是 Message-Digest Algorithm 的简写,是一种信息摘要算法,也称为哈希算法,具有不可逆性。

但是,在 2009年,中国科学院谢涛和冯登国仅用了 2^20.96 的碰撞算法复杂度,破解了 MD5 的碰撞抵抗。2011年,RFC 6151 禁止 MD5 用作密钥散列消息认证码。

🔶🔶🔶🔶🔶 我是华丽的分割线 🔶🔶🔶🔶🔶

🍓五、总结

尽量避免过时/不安全/被遗弃的加密算法的使用,后面将会讲解推荐使用的加密算法。

⚡参考文献⚡

[1] 在线RSA加密解密,RSA2加密解密(SHA256WithRSA)-BeJSON.com

[2] 在线加密解密

欢迎关注下方👇👇👇公众号👇👇👇,获取更多优质内容🤞(比心)!

这篇关于千万别再用了,这些加密算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1014260

相关文章

AES加密算法说明

首先,我们得了解AES加密算法的一些基本概念。AES是一种对称加密算法,所谓对称,是说它的加密、解密过程使用相同的密钥。还有非对称加密算法,例如RSA,加密解密使用的是公私钥对。 AES同时是一种分组加密算法,分组的长度一般是16字节(128bit)。分组是什么意思呢?假设我有一段很长的明文T,我没法用AES加密整个T,只能将T分成若干16byte的明文组,接着对这些明文组逐个进行加密,得到一堆密

【SM系列】简单说说SM2,SM3,SM4加密算法

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是SM2加密?2.1 应用场景2.2 与RSA算法的区别 三、什么是SM3加密?3.1 应用场景 四、什么是SM4加密?4.1 应用场景 五、最后 开篇说明 之前我们说过了几种常见加密算法,今天我

加密算法种类

常见的加密算法可以分成三类,对称加密算法,非对称加密算法和哈希算法。 1. 对     称     加       密:加密和解密使用相同密钥的加密算法。     优          缺          点:对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。     常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。 2

python实现椭圆曲线加密算法(ECC)

目录 椭圆曲线加密算法(ECC)简介ECC的数学基础椭圆曲线的定义ECC的基本操作 ECC加密和解密流程Python面向对象实现ECC加密和解密代码解释场景应用:安全通信总结 椭圆曲线加密算法(ECC)简介 椭圆曲线加密算法(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线数学结构的公钥加密算法。ECC以其较高的安全性和较小的密钥长度而闻名

国际非对称加密算法

国际非对称加密 RSA算法原理 RSA算法是一种非对称加密算法,它的安全性基于大数分解的困难性。RSA算法的核心是选择两个大质数p和q,计算它们的乘积n=pq,然后选择一个整数e,使得1<e<φ(n)且e与φ(n)互质,其中φ(n)=(p-1)(q-1)。接着计算d,使得d*e mod φ(n)=1,d称为e的模反元素。公钥为(n,e),私钥为(n,d)。 非对称特征 非对称加密算法有两个密

对称加密算法DES、3DES和AES

学习交流关注微信公众号:钟渊博客 1、对称加密算法 1.1 定义 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,

【加密算法】有关国密4加密算法的实现

今天在对接乐企的时候,需要用到国密4算法对入参进行加密 之后对出参进行解密,乐企平台提供了算法实现,具体如下: import org.apache.commons.lang3.ObjectUtils;import org.bouncycastle.jce.provider.BouncyCastleProvider;import org.bouncycastle.pqc.math.linear

【转载】DES加密算法原理

DES算法理论 本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。其中之一就是1971年美国学者塔奇曼 (Tuchman)和麦耶(Meyer)根据信息论创始人香农(Shannon)提出的「多重加密有效性理论」创立的,后於1977年由美国国家标準局颁布的数据加密标準。 DES密码实际上是Lucifer密码的进一步发展。它是一种採用传统加密方法的区组密码。它的算法是对称的,既可用於加密又

安卓文件加密 (File-Based Encryption, FBE) 加密算法--AES-256-XTS

标签: File-Based Encryption加密算法; AES-256-XTS; 安卓文件加密 (File-Based Encryption, FBE) 加密算法详解 1. 什么是文件加密(FBE)? 文件加密(File-Based Encryption, FBE)是Android在7.0(Nougat)及更高版本中引入的一种加密机制,它允许不同的文件使用不同的加密密钥进行

Bcrypt加密算法_案例_好处_资料下载地址

Bcrypt盐值加密 文章目录 Bcrypt盐值加密1.Bcrypt加密算法的好处2.案例代码3.jar包下载地址4.Bcrypt中密码对比的过程5.MD5中密码对比的过程 1.Bcrypt加密算法的好处 (1)Bcrypt对密码管理非常方便,采用hash+salt的方式,使用密码生成salt和hash,并将salt加入到hash里面去,从而使得salt不需要单独保存,同时嫌