阅读文本大概需要10分钟。
0x01:对接加密简述
对称加密最直接的一句话概述就是:加密密钥与解密密钥完全相等,所以叫对称加密。常见的对称加密有DES、Triple DES、AES、PBE等。
0x02:数据加密标准(Data Encryption Standard,简称DES)
Java标准实现情况:
-
密钥长度:56
-
默认密钥长度:56
-
工作模式:ECB、CBC、PCBC、CTR、CTS、CFB、CFB8 到 128、OFB、OFB8 到 128
-
填充方式:NoPadding、PKCS5Padding、ISO10126Padding
Bouncy Castle实现情况:
-
密钥长度:64
-
默认密钥长度:56
-
工作模式:ECB、CBC、PCBC、CTR、CTS、CFB、CFB8 到 128、OFB、OFB8 到 128
-
填充方式:PKCS7Padding、ISO10126d2Padding、X932Padding、ISO7816d4Padding、ZeroBytePadding
0x03:3重DES加密
该加密方式密钥长度增强、迭代次数提高;使得破解难度加大。
Java标准实现情况:
-
密钥长度:112、168
-
默认密钥长度:168
-
工作模式:ECB、CBC、PCBC、CTR、CTS、CFB、CFB8 到 128、OFB、OFB8 到 128
-
填充方式:NoPadding、PKCS5Padding、ISO10126Padding
Bouncy Castle实现情况:
-
密钥长度:128、192
-
默认密钥长度:168
-
工作模式:ECB、CBC、PCBC、CTR、CTS、CFB、CFB8 到 128、OFB、OFB8 到 128
-
填充方式:PKCS7Padding、ISO10126d2Padding、X932Padding、ISO7816d4Padding、ZeroBytePadding
0x04:高级加密标准(Advanced Encryption Standard,简称AES)
AES加密算法是目前使用最多的对称加密算法,也是最安全的加密算法之一。
Java标准实现情况:
-
密钥长度:128、192、256 (256位密钥需要获得无政策限制权限文件,正常下载的JDK无法支持256位加密)
-
默认密钥长度:128
-
工作模式:ECB、CBC、PCBC、CTR、CTS、CFB、CFB8 到 128、OFB、OFB8 到 128
-
填充方式:NoPadding、PKCS5Padding、ISO10126Padding
Bouncy Castle实现情况:
-
密钥长度:128、192、256 (256位密钥需要获得无政策限制权限文件,正常下载的JDK无法支持256位加密)
-
默认密钥长度:128
-
工作模式:ECB、CBC、PCBC、CTR、CTS、CFB、CFB8 到 128、OFB、OFB8 到 128
-
填充方式:PKCS7Padding、ZeroBytePadding
0x05: 基于口令加密(Password Based Encryption,简称PBE)
是一种基于口令的加密算法,其特点是使用口令代替了密钥,而口令由用户自己掌管,采用随机数杂凑多重加密等方法保证数据的安全性。
PBEWithMD5AndDES
-
密钥长度: 56
-
默认密钥长度: 56
-
工作模式:CBC
-
填充方式:PKCS5Padding
-
备注: java6实现
PBEWithMD5AndTripeDES
-
密钥长度:112、168
-
默认密钥长度: 168
-
工作模式:CBC
-
填充方式:PKCS6Padding
-
备注: java7实现
PBEWithSHA1AndDESede
-
密钥长度:112、168
-
默认密钥长度: 168
-
工作模式:CBC
-
填充方式:PKCS7Padding
-
备注: java8实现
PBEWithSHA1AndRC2_40
-
密钥长度:40至1024
-
默认密钥长度: 128
-
工作模式:CBC
-
填充方式:PKCS8Padding
-
备注: java9实现
PBEWithMD5AndDES
-
密钥长度:64
-
默认密钥长度: 64
-
工作模式:CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10126Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithMD5AndRC2
-
密钥长度:128
-
默认密钥长度: 128
-
工作模式:CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10127Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHA1AndDES
-
密钥长度:64
-
默认密钥长度: 64
-
工作模式:CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10128Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHA1AndRC2
-
密钥长度:128
-
默认密钥长度: 128
-
工作模式:CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10129Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHAAndIDEA-CBC
-
密钥长度:128
-
默认密钥长度:128
-
工作模式: CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10130Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHAAnd2-KeyTripleDES-CBC
-
密钥长度: 128
-
默认密钥长度:128
-
工作模式: CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10131Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHAAnd3-KeyTripleDES-CBC
-
密钥长度:192
-
默认密钥长度:192
-
工作模式: CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10132Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHAAnd128BitRC2-CBC
-
密钥长度: 128
-
默认密钥长度:128
-
工作模式: CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10133Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHAAnd40BitRC2-CBC
-
密钥长度: 40
-
默认密钥长度:40
-
工作模式:CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10134Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHAAnd128BitRC4
-
密钥长度: 128
-
默认密钥长度:128
-
工作模式: CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10135Padding、ZeroBytePadding
-
备注: BouncyCastle实现
PBEWithSHAAnd40BitRC4
-
密钥长度: 40
-
默认密钥长度:40
-
工作模式: CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10136Padding、ZeroBytePadding
-
备注:BouncyCastle实现
PBEWithSHAAndTwofish-CBC
-
密钥长度:256
-
默认密钥长度:256
-
工作模式: CBC
-
填充方式:PKCS5Padding、PKCS7Padding、ISO10137Padding、ZeroBytePadding
-
备注:BouncyCastle实现
参考 https://www.jianshu.com/p/d28138f86887 https://www.cnblogs.com/duanxz/p/4385713.html
☆
往期精彩
☆
01 漫谈发版哪些事,好课程推荐
02 Linux的常用最危险的命令
03 精讲Spring Boot—入门+进阶+实例
04 优秀的Java程序员必须了解的GC哪些
05 互联网支付系统整体架构详解
关注我
每天进步一点点
很干!在看吗?☟