首页 > 编程语言 >一文看懂:MD5、AES和RSA算法这三者之间的区别

一文看懂:MD5、AES和RSA算法这三者之间的区别

时间:2022-12-21 18:02:55浏览次数:42  
标签:AES 加密 RSA 密码 算法 MD5

在计算机安全领域,MD5、AES和RSA算法的应用比较广泛,它们可用来避免密码明文传输的漏洞危害。但是,这3种算法有什么区别呢?

一文看懂:MD5、AES和RSA算法这三者之间的区别_公钥加密

什么是MD5

MD5信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。2004年,证实MD5算法无法防止碰撞,因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

什么是AES

AES是高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,目前已经被全世界广泛使用,同时AES已经成为对称密钥加密中最流行的算法之一。AES支持三种长度的密钥:128位,192位,256位。

什么是RSA

RSA是一种公钥密码算法,它的名字是由它的三位开发者,即Ron Rivest、Adi Shamir 和 Leonard Adleman 的姓氏的首字母组成的。RSA可以被用于公钥密码和数字签名。RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种gong击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

MD5、AES和RSA算法区别

不可逆算法(MD5):使用的是hash算法,在计算过程中原文的部分信息是丢失了的。也就是说,MD5的运算过程存在信息丢失。因而仅仅根据MD5的计算过程和得到的最终结果,是无法逆向计算出明文的。任何数据都能加密成16字节,不太安全。

过程:创建账号时,将账号对应密码的MD5存储数据库,登录时,对用户输入的密码进行MD5加密传送到服务器端,根据账号从数据库查询出该账号对应的MD5值进行对比,判断是否相同。

风险:字典表很大。在md5.cn,存储超过80万亿个密码,很快速查询到一些密码强度不复杂的密码。

一文看懂:MD5、AES和RSA算法这三者之间的区别_公钥加密_02

对称加密(AES):加密解密都是用同一个密钥,需要传输密钥,不太安全,但速度快。

过程:秘钥固定在客户端代码和后端代码中,登录时使用固定密码将明文密码加密传输到后端,后端使用相同的固定秘钥解密,然后查询用户存储在数据库的密码,进行对比认证。

风险:秘钥硬编码于客户端代码中,存在泄漏风险。

一文看懂:MD5、AES和RSA算法这三者之间的区别_客户端_03

非对称加密(RSA):有公钥和私钥,公钥加密,私钥解密,安全,速度慢

过程:在后端使用非对称算法RSA生成一对公私钥,公钥固定存储在客户端代码中,私钥存储在后端代码中,登录时对输入的密码使用公钥加密传输,后端收到加密的秘钥后,使用私钥进行解密,然后查询该账号对应的密码,进行对比。

安全保证:得不到私钥,公钥加密后的密码的密码是无法解密的,保证了密码的绝对安全。

以上就是MD5、AES和RSA算法这三者之间的区别,你都了解了吗?

标签:AES,加密,RSA,密码,算法,MD5
From: https://blog.51cto.com/u_15693888/5960041

相关文章

  • 论文解读:Denoising Distant Supervision for Relation Extraction via Instance-Level
    论文解读:DenoisingDistantSupervisionforRelationExtractionviaInstance-LevelAdversarialTraining  本文是一篇以生成对抗网络为出发点的远程监督关系抽取文章,......
  • Cannot find any provider supporting AES/CBC/PKCS7Padding 解决
    文章转载自: https://www.jianshu.com/p/fd78ab0f474e Java使用AES/CBC/PKCS7Padding时会报错,因为原生JDK不支持。修改方法很简简单单,两步:1、添加算法的jar包bcpro......
  • 验证码、MD5加密
    验证码生成验证码帮助类点击查看代码VerifyCodeServlet.javapackagecom.situ.web.servlet;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphic......
  • RSA非对称加解密算法填充方式(Padding)
    1.padding模式1.1三类常见填充方式RSA加密常用的填充模式有三种:​​RSA_PKCS1_PADDING,RSA_PKCS1_OAEP_PADDING,RSA_NO_PADDING。​​与对称加密算法DES,AES一样,RSA算法也......
  • C#获取文件MD5
    C#获取文件MD5码:<spanstyle="font-size:18px;">staticvoidMain(string[]args){stringcode=GetMD5HashFromFile("123.pdf");}pr......
  • Versa CSG 300系列
    SASE的下一代产品VersaNetworks不销售VersaCSG设备。客户和合作伙伴必须通过分销渠道直接从制造商处购买CSG设备。VersaCSG300系列是为客户部署VersaSASE在中小型企业......
  • 网络信息安全 古典密码(仿射、PlayFair)DES RSA
     网络信息安全实验报告课程名称网络信息安全实验项目名称古典密码、对称密码、非对称密码实验时间(日期及节次)周五三、四节专业软件工......
  • 原生js实现rsa加密
    原生js实现rsa加密示例createNewUserKey().then(function(keyPairs){encrypt("thisisorigintext",keyPairs[0]).then(function(res){console.log('......
  • Universal-Image-Loader源码分析,及常用的缓存策略
    讲到图片请求,主要涉及到网络请求,内存缓存,硬盘缓存等原理和4大引用的问题,概括起来主要有以下几个内容:原理示意图   主体有三个,分别是UI,缓存模块和数据源(网络)。它们之间......
  • C# AES加解密
    ///<summary>///AES加密///</summary>///<paramname="key"></param>///<paramname="str"></param>///<returns></returns>public......