对称加密和非对称加密
源码地址:Advance: advance - Gitee.com
Java常用加密方式:
- Base64加密算法(编码方式)
- MD5加密(消息摘要算法,验证信息完整性)
- 对称加密算法
- 非对称加密算法
- 数字签名算法
- 数字证书
分类:
2.按加密算法是否可逆被分为两类:
单向加密算法(不可解密):MD5、SHA、HMAC;
双向加密算法(可解密):BASE64、对称加密算法、非对称加密算法、数字签名算法、数字证书;
一、单向加密
MD5是将任意长度的数据字符串转化成固定长度字符串的单向操作。
二、双向加密
2.1对称加密
优点:快速、简单。
加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议核心。
常见对称加密:
DES: 已破解,不再安全,基本没有企业在用了,是对称加密算法的基石,具有学习价值。
3DES: 三重DES算法。早于AES出现来替代DES,计算密钥时间太长、加密效率不高,所以也基本上不用。
AES: 最常用的对称加密算法,密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好),实际使用中,使用工作模式为CTR(最好用BC去实现),此工作模式需要引入IV参数(16位的字节数组),密钥长度128/192/256,其中192与256需要配置无政策限制权限文件(JDK6),填充模式最常用的两种PKCS5Padding和PKCS7Padding,其中后者只有BC独有。
PBE: 基于口令加密。综合了消息摘要算法和对称加密算法,最常见的是PBEWithMD5AndDES,工作模式只有CBC(已丧失安全性,不推荐使用),所以PBE也不推荐使用了。
** IDEA**: 国际数据加密标准。常用的电子邮件加密算法,工作模式只有ECB,密钥长度128位。
2.2非对称加密
非对称加密有两把钥匙,公钥与私钥。遵循"公钥加密、私钥解密"和"私钥加密、公钥解密"。
常见非对称加密:
DH(密钥交换算法)
RSA(基于因子分解): 既能用于数据加密也能用于数字签名的算法。数字签名的意义在于对传输过来的数据进行校验,确保数据在传输过程中不被改动。
ElGamal(基于离散对数)
ECC(椭圆曲线加密)
2.3Base64
这 64 个字符是:小写字母 a-z、大写字母 A-Z、数字 0-9、符号"+"、"/"(再加上作为垫字的"=",实际上是 65 个字符).
会将8位的非英语字符转化为7位的ASCII字符。Base64编码后的文本,会比原文本大出三分之一左右。BASE64加密后产生的字节位数是8的倍数,如果不够位数以=符号填充
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)