常用的加密算法

本文深入解析了数字签名的原理、加密与解密的过程,以及对称加密(如DES3、AES)、非对称加密(RSA、ECC)的运作机制。重点介绍了MD5、SHA1、HMAC等签名算法和AES/DES/3DES等加密算法的应用。
摘要由CSDN通过智能技术生成

常见的七种加密算法 以及实现

数字签名、信息加密是前后端开发经常使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth等等。不同应用场景可能需要搭配不同的应用算法来实现。

数字签名

数字签名,通过可鉴别的数字信息验证 自身身份的一种方式,可以理解为现实生活当中身份证的身份证号码。

一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。发送者持有私钥,接收者持有私钥对应的公钥。能够在接受到来自发送者信息时用于验证其身份。

加密和解密

  • 加密
    • 数据加密的基本过程,就是对原来为明文的文件或按照某种算法进行处理,让其成为不可读的一段代码,通常称为密文。用于保护数据不被人获取,窃取。
  • 解密
    • 加密的逆过程为解密,即将该编码信息转化为其原来数据的过程

对称加密和非对称加密

加密算法份对称加密和非对称加密,其中对称加密的算法与解密密钥相同,非对称加密算法的加密密钥与解密密钥不同,此外还有一类不需要密钥的散列算法。

常见的对称加密算法主要有DES 3DES AES等,常见的非堆成算法主要有RSA DSA 等,散列算法主要有SHA-1 MD5

对称加密

对称加密算法时应用较早的加密算法,又称为共享密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接送双方都使用这个密钥对数据进行加密和解密。

  1. 数据加密过程:在对称加密算法中,数据发送将铭文和加密密钥一起经过特殊加密处理,生成复杂的加密密文进行发送

  2. 数据解密过程:数据接收方收到密文后,若相等读取原数据,则需要使用加密密钥及相同的逆算法进行解密,恢复成明文

非对称加密

非对称加密算法(公开密钥加密算法),它需要2个密钥,一个public Key,一个private Key。因为加密和解密使用的是2个不通的密钥,所以这种算法称为非对称加密算法。

  1. 如果公钥对数据进行加密。只有对应的私钥才能进行解密
  2. 如果使用私钥对数据进行加密,只有对应的公钥才能进行解密。

比如A用户生成了一对密钥,然后把公钥公开给B 。B使用公钥加密发送给A。A再使用自己保存的私钥去解密。

常见的签名加密算法

MD5算法

MD5用的是hash函数,它的典型应用是对一段信息摘要,以防止被篡改,严格来说,MD5不是一种加密算法,而是摘要算法,无论多长的输入,MD5都会输出长度为32个字符的一个字符串。

     //采用MD5加密算法
        MessageDigest md = MessageDigest.getInstance("MD5");
        //加密
        byte[] digest = md.digest("123456".getBytes());

SHA1算法

SHA1是和M5一样的消息摘要算法,然而SHA1比MD5的安全性更强。

 //采用MD5加密算法
        MessageDigest md = MessageDigest.getInstance("SHA1");

HMAC算法

HMAC是密钥相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息未输入,生成一个消息摘要作为输出。

HMAC在多线程环境下是不安全的。如果需要在多线程访问的时候,进行同步的辅助类,使用ThreadLocal为每个线程缓存一个实例可以避免进行锁操作。

AES/DES/3DES算法

AES\DES\3DES都是对称的块加密算法发,加解密的过程是可逆的,常用的有AES128/AES192/AES256。

DES算法

DES加密算法是一种分组密码,以64位分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。

3DES算法

基于DES的堆成算法,对一块数据用三个不同的密钥进行三次加密,强度更高。

AES加密算法

AES 加密算法是密码学中的高级加密标准,该加密算法采用分组密码体制,密钥长度最少支持位128、192、256,分组长度128位,算法应易于各种硬件和软件实现。AES 本身就是为了取代DES。AES具有更好的安全性,效率和灵活性

RSA算法

RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个同时用于加密和数字签名的算法。它能够抵抗到目前为止已知 的所有密码攻击。

ECC算法

ECC也是一种非对称加密算法,主要优势是在某些情况下,它比其他的方法使用更下的密钥,比如RSA加密算法,提供相当或更高等级的安全级别。不过一个缺点是加密和解密操作的实现比其他机制时间长。(CPU消耗严重)

对称算法

密钥管理:比较难,不适合互联网,一般用于内部系统。
安全性:中
加密速度:快好几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特数据),适合大数据量的加解密处理。

非对称算法

密钥管理:密钥容易管理。
安全性:高
加密速度:比较慢,适合 小数据量加解密或数据签名。



作者:TZX_0710
链接:https://www.jianshu.com/p/48ed0a669db2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

前端常用加密算法包括: 1. 对称加密算法:如AES(Advanced Encryption Standard)、DES(Data Encryption Standard)和3DES(Triple Data Encryption Standard),特点是加密解密速度快,但密钥安全性较低。 2. 非对称加密算法:如RSA(Rivest-Shamir-Adleman)和ECC(Elliptic Curve Cryptography),特点是加密解密速度较慢,但密钥安全性较高。 3. 哈希算法:如MD5(Message-Digest Algorithm 5)和SHA(Secure Hash Algorithm),特点是不可逆且不同的明文生成的哈希值相同的概率极小。 4. 对称加密算法与非对称加密算法结合使用:如SSL(Secure Socket Layer)和TLS(Transport Layer Security),通过使用对称加密算法加密通信过程中的数据,使用非对称加密算法加密密钥,从而兼顾了加密速度和密钥安全性。 常用加密算法的特点主要包括: 1. 加密强度:指加密算法对攻击者破解的难度,一般用密钥长度来衡量,密钥长度越长,加密强度越高。 2. 加密速度:指加密算法对数据加密、解密的速度,一般对称加密算法速度较快,非对称加密算法速度较慢。 3. 密钥管理:指加密算法对密钥生成、存储、分发和更新的支持程度,一般非对称加密算法需要密钥管理较为复杂。 4. 可逆性:指加密算法是否支持加密后数据可逆解密,对称加密算法和非对称加密算法的可逆性不同。 5. 安全性:指加密算法的安全性是否被攻击者破解,一般安全性高的加密算法需要较高的加密强度和密钥管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值