常见对称加密

阅读文本大概需要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 互联网支付系统整体架构详解


关注我

每天进步一点点

很干!在看吗?☟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BUG弄潮儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值