对称加密和非对称加密

源码地址: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的倍数,如果不够位数以=符号填充

posted @   little_lunatic  阅读(134)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示