加密算法(DES,AES,RSA,ECC,MD5,SHA1)简介
加密算法(DES,AES,RSA,MD5,SHA1)简介
- 一、对称性加密算法
- 二、非对称算法
- 三、散列算法
- 四、算法举例
- 1、对称性加密算法有:AES、DES、3DES
- 1.1、DES(Data Encryption Standard)
- 1.2、3DES(Triple DES)
- 1.3、 AES(Advanced Encryption Standard)
- 2、非对称性算法有:RSA、DSA、ECC
- 2.1、RSA
- 2.2、DSA(Digital Signature Algorithm)
- 2.3、ECC(Elliptic Curves Cryptography)
- 2.3.1、ECDSA
- 2.3.2、ECIES
- 2.3.3、ECDH
- 3、散列算法(签名算法)有:MD5、SHA1、HMAC
- 2.1、MD5
- 2.2、 SHA1
- 2.3、HMAC_SHA1
- 参考
加密技术通常分为两大类:“对称式"和"非对称式”。
一、对称性加密算法
对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。
二、非对称算法
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为"公钥"和"私钥",它们两个必需配对使用,否则不能打开加密文件。发送双方A,B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消 息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。
三、散列算法
Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一地确定输入值。
简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
Hash主要用于信息安全领域中加密算法,他把一些不同长度的信息转化成杂乱的128位的编码里,叫做Hash值.也可以说,Hash就是找到一种数据内容和数据存放地址之间的映射关系。
在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的"散列"或"消息摘要"(Message digest)。散列算法不算加密算法,因为其结果是不可逆的,既然是不可逆的,那么当然不是用来加密的,而是签名(当然也有需要公钥私钥的签名)。
四、算法举例
1、对称性加密算法有:AES、DES、3DES
用途:对称加密算法用来对敏感数据等信息进行加密
1.1、DES(Data Encryption Standard)
数据加密标准,速度较快,适用于加密大量数据的场合。
1.2、3DES(Triple DES)
是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
1.3、 AES(Advanced Encryption Standard)
高级加密标准,是下一代的加密算法标准,速度快,安全级别高;AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入,对4×4的字节数组上进行操作。众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计。AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数)达到十亿量级。同样,其也适用于RFID系统。
2、非对称性算法有:RSA、DSA、ECC
2.1、RSA
由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。RSA在国外早已进入实用阶段,已研制出多种高速的RSA的专用芯片。
- nodejs及web端实现可rsa加密解密以参考:JavaScript的RSA加密库
2.2、DSA(Digital Signature Algorithm)
数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法。
2.3、ECC(Elliptic Curves Cryptography)
椭圆曲线密码编码学。ECC和RSA相比,具有多方面的绝对优势,主要有:抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。
2.3.1、ECDSA
is a digital signature algorithm
2.3.2、ECIES
is an Integrated Encryption scheme
2.3.3、ECDH
is a key secure key exchange algorithm
- 对ecc感兴趣的小伙伴可以了解下eccrypto(https://www.npmjs.com/package/eccrypto)及jsrsasign(https://www.npmjs.com/package/jsrsasign)
3、散列算法(签名算法)有:MD5、SHA1、HMAC
Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
2.1、MD5
MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。
2.2、 SHA1
是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的Hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。
2.3、HMAC_SHA1
是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。也就是说HMAC是需要一个密钥的。所以,HMAC_SHA1也是需要一个密钥的(即平时说的加盐),而SHA1不需要。
- 用途:主要用于验证,防止信息被修。具体用途如:文件校验、数字签名、鉴权协议
参考
1.【加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用】https://www.cnblogs.com/sochishun/p/7028056.html
2.【MD5 SHA1 HMAC HMAC_SHA1区别】https://www.cnblogs.com/fireway/p/5860622.html
3.【ECDSA vs ECIES vs ECDH】https://crypto.stackexchange.com/questions/12823/ecdsa-vs-ecies-vs-ecdh
4.https://www.npmjs.com/package/eccrypto
5.【Sha256Hash+salt 加密】https://blog.csdn.net/M_Kerry/article/details/82725622
6.【CryptoJS简单使用】http://qefee.com/2016/02/25/CryptoJS%E7%AE%80%E5%8D%95%E4%BD%BF%E7%94%A8/?from=csdn
7.【对称加密、非对称加密、散列(哈希)算法】https://www.cnblogs.com/god-of-death/p/8761281.html
加密算法(DES,AES,RSA,ECC,MD5,SHA1)简介相关推荐
- APP安全--网络传输安全 AES/RSA/ECC/MD5/SHA
移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在 ...
- JS常见加密 AES、DES、RSA、MD5、SHAI、HMAC、Base64(编码) - Python/JS实现
主要加密算法前言 本文仅仅介绍了常见的一些JS加密,并记录了JS和Python的实现方式 常见的加密算法基本分为这几类: (1)base64编码伪加密 (2)线性散列算法(签名算法)MD5 (3)安全 ...
- 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 ...
- C#.Net中的加密解密(AES、DES、RSA、MD5)、数字证书、HTTPS
一.信息安全的基本概念,以及为什么要使用加密? 1.信息安全的定义 保密性(Confidentiality) 只有你自己和你允许的人能看到相关的信息. 完整性(Integrity) 信息收发过程中 ...
- Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。
密码学综合工具 前言 git网址 项目结构 项目预览 String与byte[]互转 通过`String`类转换 通过`Base64`互转[jdk-8] 前言 我们网络信息安全的实验...要我们找各种 ...
- DES, RC4, RC5, AES, RSA, MD5, SHA1 安全算法分析
1. 基于对称密钥的加密算法主要有DES.RC4.RC5, AES 对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法.有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥 ...
- vue.js中DES、RSA、SHA1、MD5这四种加密算法的使用
vue.js中DES.RSA.SHA1.MD5这四种加密算法的使用 DES RSA SHA1 MD5 DES 美国 数据加密标准(DES)是对称密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也 ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
[最简单的加密] 1.简单的概念 明文:加密前的信息 密文:机密后的信息 算法:加密或解密的算法 密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao) 2.简单的例子 ...
最新文章
- java类验证和装载顺序_JVM类加载过程分析及验证
- 【Linux】一步一步学Linux系统编程教程汇总(暂时暂停更新......)
- 计算机视觉课_计算机视觉教程—第4课
- Nginx学习之九-负载均衡(客户端请求与Nginx进程间负载均衡)
- Asp.Net Web API(四)
- java search 不能使用方法_ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程
- Unix 下获得 root权限
- c++ regex 替换汉字_C++ - 正则表达式(regex) 替换(replace) 的 详解 及 代码
- python爬虫常用模块介绍(1)_python爬虫常用模块介绍(1)
- pdf在html中加载不出来,pdf嵌入html解决办法
- java 界面登录界面_Java登录界面的实现(注册、登录、背景图片)
- threejs 贴图动画总结
- Java生成二维码图片并打包下载
- 中国智能农业行业市场供需与战略研究报告
- 金雅拓面部识别解决方案在美国国土安全部2018年生物识别评测中表现优异
- error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义
- model.evaluate与model.predict的不同
- centos7 gitlab14搭建完成后,无法访问的问题处理(“error“:“badgateway: failed to receive response: dial unix /var/opt)
- 计算机软考access 题的做法_计算机二级Access 操作题汇总
- MacBook(m1) 通过brew安装PHP环境