浅析DES、AES、RSA、MD5加密算法及其应用场景
对称加密算法
DES 算法:一种典型的块加密方法,将固定长度的明文通过一系列复杂的操作变成同样长度的密文,块的长度为64位。同时,DES 使用的密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。 DES 的密钥表面上是64位的,实际有效密钥长度为56位,其余8位可以用于奇偶校验。
DES 现在已经不被视为一种安全的加密算法,主要原因是它使用的56位密钥过短。为了提供实用所需的安全性,可以使用 DES 的派生算法 3DES 来进行加密
AES 算法:在密码学中又称 Rijndael 加密法,用来替代原先的 DES,已经被多方分析且广泛使用。
非对称加密算法
RSA算法:1977年由 MIT 的 Ron Rivest、Adi Shamir 和 Leonard Adleman 一起提出,以他们三人姓氏开头字母命名,是一种获得广泛使用的非对称加密算法。对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一个极大整数做因数分解愈困难,RSA 算法就愈可靠。假如有人找到一种快速因数分解的算法的话,那么用 RSA 加密的信息的可靠性就肯定会极度下降。目前看来找到这样的算法的可能性非常小。
散列算法
在信息安全领域,将源数据经过散列算法计算出数据指纹,用于识别经过传播途径得到的数据是否有误 ,以保证数据的来源真实性。
MD5算法:MD5 即 Message‐Digest Algorithm 5 ,是计算机广泛使用的散列算法之一,经常用于确保信息传输的完整性和一致性 。MD5 输入不定长度信息,经过程序流程,生成四个32位数据,最后联合起来输出固定128bit长度的信息摘要。计算的基本过程为:求余、取余、调整长度、与链接变量进行循环运算、得出结果。MD5 的前身有 MD2、MD3 和 MD4。
应用场景
DES/AES加密速度快,适合大量数据,处理数据后可复原。
RSA用于保密性时,就是公钥加密,私钥解密。 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密。这样就保证了信息的保密性,因为只有私钥持有者才能正确解密。
RSA用于认证性时,比如数字签名,即私钥持有者对信息进行签名,验证者可以根据公开的公钥进行验证签名是否正确和有效,即实现了认证性,以及不可抵赖性。
MD5用于完整性,确保信息在传输过程保持一致性;用于密码加密,数据库中不存储密码明文,而是存储其散列值,校验时比较散列值是否相同
组合使用
采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,使用散列函数进行数据摘要。
最新文章
- windows和linux之间“/”, ";\\";的区别
- Excel单元格发生变化后,使用Outlook给特定的人发邮件
- Table排序
- Visual Studio 2013 添加新项缺失[ADO.NET 实体数据模型]解决方法
- 修改windows密码后ssrs报错
- 【转】Android中JNI的使用方法
- Seek the Name, Seek the Fame - POJ 2752(next运用)
- 基于visual Studio2013解决C语言竞赛题之0603打印素数
- sql第一天
- C++ 使用string一行一行读取文件
- javaScript对象学习笔记(一)
- Codeforces 558E A Simple Task (计数排序&;&;线段树优化)
- java-数组排序--冒泡排序、鸡尾酒排序、地精排序
- Python3基础-代码阅读系列—优惠码生成
- Nginx防压力测试
- fastDFS 命令笔记
- Fragment 源码解析add()和replace()方法
- Longest Substring Without Repeating Characters leetcode java
- Linux C语言小程序
- Shell编程-01-Shell脚本初步入门
热门文章
- 苹果CMSv10宝塔全自动定时采集教程
- linq/EF 使用技巧笔记
- CentOS查看进程端口号以及kill操作
- Android中实现双击(多击)事件
- Selenium 控制浏览器
- go语言系列--输出正弦函数
- Java数据库之数据库的连接操作
- Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常
- 关于自定义 List集合排序的方法!
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_5 Mybatis的CRUD-查询返回一行一列和占位符分析