DES、AES、RSA等常用加密算法介绍与比较
文本先简单介绍常用的加密算法,后面将逐步推送每个加密算法的加密原理与应用及java实现方式。
加密算法分对称加密和非对称算法,其中对称加密算法的加密与解密密钥相同,非对称加密算法的加密密钥与解密密钥不同,此外,还有一类不需要密钥的散列算法。
常见的对称加密算法主要有DES、3DES、AES等,常见的非对称算法主要有RSA、DSA等,散列算法主要有SHA-1、MD5等。
对称算法又可分为两类。一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组位进行运算(即运算之前将明文分为若干组,然后分别对每一组进行运算,这些位组称为分组),相应的算法称为分组算法或分组密码。
DES加密算法
DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为2的56次方。
3DES(Triple DES)
是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
AES加密算法
AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准,AES标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
RSA加密算法
RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数宇签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
DSA加密算法
DSA是基于整数有限域离散对数难题的,DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。这一点,RSA算法做不到。
相比于RSA,DSA 只用于签名,而 RSA 可用于签名和加密。
Base64加密算法
Base64加密算法是网络上最常见的用于传输8bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息。
MD5加密算法
MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
MD5被广泛用于各种软件的密码认证和钥匙识别上。MD5用的是哈希函数,它的典型应用是对一段信息产生信息摘要,以防止被篡改。MD5的典型应用是对一段Message产生fingerprin指纹,以防止被“篡改”。如果再有—个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。MD5还广泛用于操作系统的登陆认证上,如UNIX、各类BSD系统登录密码、数字签名等诸多方。
SHA1加密算法
SHA1是和MD5一样流行的消息摘要算法。SHA加密算法模仿MD4加密算法。
SHA1主要适用于数字签名标准里面定义的数字签名算法。对于长度小于2“64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。SHA1不可以从消息摘要中复原信息,而且两个不同的消息不会产生同样的消息摘要。这样,SHA1就可以验证数据的完整性,所以说SHA1是为了保证文件完整性的技术。
SHA1是一种比MD5的安全性强的算法,理论上,凡是采取“消息摘要”方式的数字验证算法都是有“碰撞”的——也就是两个不同的东西算出的消息摘要相同,互通作弊图就是如此。但是安全性高的算法要找到指定数据的“碰撞”很困难,而利用公式来计算“碰撞”就更困难一目前为止通用安全算法中仅有MD5被破解。
各种加密算法比较如下:
对称加密算法(加解密密钥相同)
名称 |
密钥长度 |
运算速度 |
安全性 |
资源消耗 |
DES |
56位 |
较快 |
低 |
中 |
3DES |
112位或168位 |
慢 |
中 |
高 |
AES |
128、192、256位 |
快 |
高 |
低 |
非对称算法(加密密钥和解密密钥不同)
名称 |
成熟度 |
安全性(取决于密钥长度) |
运算速度 |
资源消耗 |
RSA |
高 |
高 |
慢 |
高 |
DSA |
高 |
高 |
快 |
只能用于数字签名 |
散列算法比较
名称 |
安全性 |
速度 |
SHA-1 |
高 |
慢 |
MD5 |
中 |
快 |
对称与非对称算法比较
名称 | 密钥管理 | 安全性 | 速度 |
对称算法 |
比较难,不适合互联网, 一般用于内部系统 |
中 |
快好几个数量级(软件加解密速度至少快100倍, 每秒可以加解密数M比特数据),适合大数据量的加解密处理 |
非对称算法 | 密钥容易管理 | 高 | 慢,适合小数据量加解密或数据签名 |
以上给出了DES,3DES,AES,RSA等常见加密算法的介绍,后面将陆续推送每一种加密算法的详细实现流程以及相关的JAVA实现代码。 想及时获取最新信息可扫以下二维码关注本人原创公众号。
DES、AES、RSA等常用加密算法介绍与比较相关推荐
- 加密算法(DES,AES,RSA,ECC,MD5,SHA1)简介
加密算法(DES,AES,RSA,MD5,SHA1)简介 一.对称性加密算法 二.非对称算法 三.散列算法 四.算法举例 1.对称性加密算法有:AES.DES.3DES 1.1.DES(Data En ...
- JAVA加密解密→术语、密码分类、OSI与TCP/IP安全体系、Base64、消息摘要算法MD/SHA/MAC、对称加密算法DES/AES/PBE、非对称加密算法DH/RSA/EIGamaI
术语 密码分类 OSI与TCP/IP安全体系 JAVA安全 Base64算法 消息摘要算法MD 消息摘要算法MD图解 消息摘要算法SHA 消息摘要算法SHA图解 消息摘要算法MAC 消息摘要算法MAC ...
- python常见加密方法实现,DES,AES,RSA,MD5,国密。--更新中
常见加密算法的简介和python的实现,使用各种库实现,而不是源码实现 对称加密 DES加密 非对称加密 RSA加密 消息摘要算法/签名算法 MD5 国密算法 SM1 对称密码 SM4 对称算法 SM ...
- 常用对称加密算法(DES/AES)类(PHP)
看注释,啥也不说了,欢迎各种跨平台测试! /** * 常用对称加密算法类 * 支持密钥:64/128/256 bit(字节长度8/16/32) * 支持算法:DES/AES(根据密钥长度自动匹配使用: ...
- JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64(编码) - Python/JS实现
主要加密算法前言 本文仅仅介绍了常见的一些JS加密,并记录了JS和Python的实现方式 常见的加密算法基本分为这几类: (1)base64编码伪加密 (2)线性散列算法(签名算法)MD5 (3)安全 ...
- AES、DES、RSA、base64、MD5、SHA加密
对称加密: 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用.对称性加密也称为密钥加密. 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥 ...
- 网络安全——常用的数据加密算法介绍
常用加密算法有两类:对称加密算法和非对称加密算法(公开密钥加密).对称加密算法用来对敏感数据等信息进行加密,常用的算法包括: DES:数据加密标准,速度较快,适用于加密大量数据的场合. 3DES:是基 ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
[最简单的加密] 1.简单的概念 明文:加密前的信息 密文:机密后的信息 算法:加密或解密的算法 密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao) 2.简单的例子 ...
- C#加密解密(DES,AES,Base64,md5,SHA256,RSA,RC4)
一:异或^简单加解密(数字类型) 1:原理: 异或用于比较两个二进制数的相应位,在执行按位"异或"运算时,如果两个二进制数的相应位都为1或者都为0,则返回0;如果两个二进制数的相应 ...
最新文章
- TrueNorth:IBM的百万神经元类人脑芯片
- 【AWR】调整AWR数据采样时间间隔及历史快照保留时间
- 窗口类、窗口类对象与窗口 三者之间关系
- springboot项目启动成功后执行一段代码的两种方式
- git pull的理解 以及 git conflict的解决
- [转载]让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求
- [转]C# 实现Jwt bearer Authentication
- 游戏筑基开发之C语言回调函数使用实例及其.h库封装实例
- 20. Magento 创建新闻模块(1)
- 基于springboot的鲜花商城系统
- CF 4B. Before an Exam
- 内存管理的概念及作用
- Matlab中S-函数的编写
- wifi连接上不能上网 手机WiFi连接上不能上网的解决办法
- 分享md5解密站源代码,简单的代码就可以实现md5解密
- 最小二乘拟合n阶多项式【Matlab】
- 许昌西继电梯服务器显示ZY,许昌西继西门子电梯5000故障代码
- Vue前端实现excel的导入、导出、打印功能
- STM32F207 USB复合设备
- 线元法输入曲线要素_UG编程建模环境曲线倒圆角的方法
热门文章
- 评审系统:查看互评信息实现及优化显示
- 新款iPhone现已曝光,跟风华为“浴霸三摄”,没有5G版本
- 科大讯飞发布第三季度业绩报告:扣非净利润同比减少近9成
- 景驰无人车总部落户广州:明年最低量产500辆,回应百度官司
- 用keepalived配置高可用,监控NGINX服务
- php7 编译安装,添加扩展 pdo /usr/local/php/bin/phpize 发现没有 configure
- 重新编译hadoop-2.7.2-src的native以支持Snappy解压压缩库
- 邮件服务器IMail教程(2)
- mikadonic-RHCE——NFS服务配置图解
- 自动驾驶汽车也能聊天?