可逆加解密算法 Java 可逆加密算法有哪些

发布时间:2023-05-18 09:22:01

一、概述

加密分为单向加密和双向加密:

单向加密 又称不可逆加密,即生成密文不能反解的加密方法;eg:MD5和SHA系列,HMAC。双向加密 又称可逆加密,即生成密文后,必要时可反解为明文;eg:RSA、AES、DES系列。

双向加密还包括非对称加密和对称加密:

对称加密算法:又称单密钥加密。对称加密是使用相同的密钥进行加密和解密。双方都需要事先知道密钥和加解密算法,密钥是一样的,然后对数据进行加解密。对称加密算法用于加密敏感数据和其他信息。非对称算法:非对称加密是指加密和解密不使用相同的密钥,通常有两个密钥,称为“公钥”和“私钥”,必须配对使用。

此外,Base64不是安全领域的加解密算法,而是一种编码算法,通常用于将二进制数据编码为可写字符形式的数据,特别适用于http和mime协议下的网络快速传输数据。UTF-Base64的编码结果与GBK中文不同。Base64编码不仅简短,而且不可读,即编码的数据不会直接用肉眼看到,但这种方法非常初级和简单。Base64可以编码传输图片文件。这是一种可逆的编码方法。编码后的数据是一个字符串,其中包含的字符是:A-Z、a-z、0-9、+、总共64个字符(26 + 26 + 10 + 1 + 1 = 64,实际上是65个字符,“=”是填充字符。

二、区别1、常用的单向加密算法:

MD5:MD5摘要算法。数字摘要算法又称哈希算法和散列算法。无论输入多长,MD5 输出长度为 128bits 散列值(通常使用 16 进制 表示为 32 个字符)。2、对称加密:

优点:对称加密算法使用相同的密钥进行加密和解密,速度快,适用于大量数据加密。缺点:对称加密客户端和服务端使用相同的密钥,有被抓住的风险;需要大量的钥匙,密钥管理负担。常用的算法:

DES:密钥长度可为128、192、256位 DES是一种分组加密技术,即16字节、24字节和32字节;AES:密钥长度64位 ,也就是说,8字节具有更高的速度和资源利用效率。高级加密标准是下一代加密算法标准,速度快,安全水平高;3、非对称加密:优点:非对称加密算法采用公钥加密,私钥解密,私钥签名,公钥验证。安全性高,私钥留一方保管,不泄漏,公钥交给请求方。安全性高,私钥留一方保管,不泄漏,公钥交给请求方。缺点:速度慢。常用算法:

RSA:由 RSA 支持变长密钥的公共密钥算法是公司发明的,需要加密的文件块的长度也是可变的。Elgamal背包算法RabinDSA:数字签名算法是一种标准 DSS(数字签名标准)Ecc:椭圆曲线密码编码学。与RSA相比,ECC具有相同的密钥长度,其抗攻击性要强很多倍。计算量小,处理速度快。ECC的总速度比RSA快、DSA要快得多。存储空间占地面积小。建议采用对称加密算法对大量数据进行加密,以提高加密速度;非对称加密算法可用于小量机密数据。

4、密钥:选择加密方法后,如何选择密钥:一般密钥运行速度越长越慢,所以根据实际需要选择安全级别:一般RSA建议1024位数,ECC160位,AES128位。

本文是转载内容,我们尊重原作者对文章的权利。如有内容错误或侵权行为,请联系我们更正或删除文章。

上一篇 Java save Java saveformat
下一篇 Java 校验字符串是否存在空格 java校验特殊字符

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题