前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见对称加密

常见对称加密

作者头像
BUG弄潮儿
发布2020-06-12 16:40:47
1K0
发布2020-06-12 16:40:47
举报
文章被收录于专栏:JAVA乐园JAVA乐园

阅读文本大概需要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实现
代码语言:javascript
复制
参考
https://www.jianshu.com/p/d28138f86887
https://www.cnblogs.com/duanxz/p/4385713.html
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档