`
wangrl
  • 浏览: 152848 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JCE支持的模式和填充方式

阅读更多
JCE中AES支持五中模式:CBC,CFB,ECB,OFB,PCBC;支持三种填充:NoPadding,PKCS5Padding,ISO10126Padding。不支持SSL3Padding。不支持“NONE”模式。

不带模式和填充来获取AES算法的时候,其默认使用ECB/PKCS5Padding。

算法/模式/填充                   16字节加密后数据长度         不满16字节加密后长度
AES/CBC/NoPadding              16                         不支持
AES/CBC/PKCS5Padding           32                         16
AES/CBC/ISO10126Padding        32                         16
AES/CFB/NoPadding              16                         原始数据长度
AES/CFB/PKCS5Padding           32                         16
AES/CFB/ISO10126Padding        32                         16
AES/ECB/NoPadding              16                         不支持
AES/ECB/PKCS5Padding           32                         16
AES/ECB/ISO10126Padding        32                         16
AES/OFB/NoPadding              16                         原始数据长度
AES/OFB/PKCS5Padding           32                         16
AES/OFB/ISO10126Padding        32                         16
AES/PCBC/NoPadding             16                         不支持
AES/PCBC/PKCS5Padding          32                         16
AES/PCBC/ISO10126Padding       32                         16

可以看到,在原始数据长度为16的整数倍时,假如原始数据长度等于16*n,则使用NoPadding时加密后数据长度等于16*n,其它情况下加密数据长度等于16*(n+1)。在不足16的整数倍的情况下,假如原始数据长度等于16*n+m[其中m小于16],除了NoPadding填充之外的任何方式,加密数据长度都等于16*(n+1);NoPadding填充情况下,CBC、ECB和PCBC三种模式是不支持的,CFB、OFB两种模式下则加密数据长度等于原始数据长度。

分组对称加密模式:ECB/CBC/CFB/OFB缺CTR
分享到:
评论

相关推荐

    jce(Java加密扩展)

    1、javax.crypto.Cipher 类提供加密和解密的功能,它构成了 Java Cryptography Extension (JCE) —— Java 加密扩展框架的核心。这些都是 Java JDK 原生的 API,不是第三方的。 2、Cipher 的 getInstance(String ...

    AES加密模式[整理].pdf

    如果需要跨平台兼容,需要选择合适的加密库,例如开源项目Botan,它提供了与JCE类似的接口,并支持多种加密模式和填充方式。 在填充方面,PKCS5Padding和ISO10126Padding通常用于确保数据长度是块大小的整数倍,...

    支持AES加密.zip

    综合来看,这个压缩包提供了一个适用于Java环境的AES加密工具类AesUtils.java,它可能包含了上述的加密模式和填充方法,并且可能考虑了非对称加密的私钥安全处理。这样的工具类对于开发人员来说非常实用,可以方便地...

    Java:解决JDK 8不支持AES 256的问题

    在Java编程环境中,AES(Advanced Encryption ...同时,对于敏感数据的加密,除了选择正确的加密算法和密钥长度,还应遵循最佳实践,如使用随机生成的密钥、安全的密钥存储和传输,以及适当的加密模式和填充方式。

    基于Java的CBC保密模式应用.pdf

    JCA提供了一系列的加密框架和API,而JCE在JCA的基础上提供了加密和解密操作的实现,包括对CBC模式的支持。开发者可以利用JCE中提供的加密引擎来实现CBC模式的加密和解密过程。初始化阶段,需要生成随机的初始向量并...

    AES加密异常处理

    选择合适的模式和填充方式可以提高加密的安全性和灵活性。 6. **注意事项** - 使用AES时,确保密钥安全存储,不要明文保存。 - 不推荐使用默认的ECB模式,因为它不够安全。推荐使用CBC模式并配合随机初始化向量...

    aes.tar.gz_AES_aes java_aes-256

    AES,全称Advanced Encryption ...总结,AES-256在Java中的实现涉及到JCE库的使用,生成和管理密钥,选择合适的加密模式和填充策略,以及数据的加密和解密操作。理解这些概念和技术对于构建安全的加密系统至关重要。

    AES实现java加密解密

    9. **注意事项**:在Android设备上,由于安全限制,可能需要使用不同的加密模式和填充方式。例如,Android API级别低于23时,默认不支持AES/CBC模式,需要使用AES/GCM/NoPadding。 10. **错误处理**:在实际编程中...

    java讲解常见的加密方法和解密方法.7z

    在Java中,`javax.crypto.Cipher` 类可以用来执行AES的加密和解密操作,通过`Cipher.getInstance("AES/CBC/PKCS5Padding")`来选择具体的加密模式和填充方式。 2. **DES加密**:DES是一种较老的对称加密算法,由于其...

    AES加解密算法(java)

    总结,AES加解密算法在Java中的实现主要涉及密钥生成、加密和解密操作,同时需要注意选择合适的加密模式和填充方式,以及妥善管理密钥。理解并熟练运用这些知识,可以为你的应用程序提供强大的数据安全保障。

    Java 加密解密之对称加密算法AES.pdf

    JDK提供了对AES的支持,允许开发者使用不同工作模式(如ECB、CBC、PCBC、CTR、CTS、CFB、CFB8到CFB128、OFB、OBF8到OFB128)和填充方式(如NoPadding、PKCS5Padding、ISO10126Padding)。示例代码展示了如何使用Java...

    AES加密算法在JAVA中的应用研究.pdf

    填充方式也是必须考虑的因素,如NoPadding、PKCS5Padding和ISO10126Padding,它们用于确保数据长度符合加密块的要求。 总的来说,理解并正确实施AES加密算法在Java中的应用,对于提升Java系统的数据传输和使用安全...

    Java AES文件和文本加解密

    - **模式和填充**:不同的加密模式和填充方式对安全性及效率有影响,需根据具体场景选择。 - **异常处理**:在实际编程中,务必捕获并处理可能的加密和解密异常,确保程序的健壮性。 5. **示例代码** 加密: ``...

    《Java加密与解密的艺术》配书源代码

    Java提供了丰富的加密库,如Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE),它们支持各种加密标准和算法,如RSA、AES、DES等。 2. **对称加密** 对称加密是最常见的加密方式,如AES...

    Java AES DES加密算法的坑

    总结来说,理解和正确使用Java中的AES和DES加密算法,需要考虑密钥管理、初始化向量、填充模式、编码以及错误处理等多个方面,同时要关注加密过程中的安全风险和潜在陷阱。在实践中,结合合适的加密库和最佳实践,...

    AES.rar_AES_in_java aes

    通常,这样的文件会包含一个或多个Java类,用于演示如何初始化AES密钥、设置加密模式、填充方式,以及执行加密和解密过程。 在Java中实现AES加密,我们需要以下步骤: 1. **生成或加载密钥**:AES支持128、192和...

    java 加密软件

    在Java加密软件中,用户可能需要选择合适的加密算法、密钥长度、加密模式和填充方式,并确保遵循良好的安全实践,如定期更换密钥,避免明文存储敏感信息等。同时,软件应具备友好的用户界面,简化加密和解密操作,...

    Java加密与解密的艺术配书源代码

    PKCS#7填充是最常见的填充方式。 通过"Java加密与解密的艺术"这本书的源代码,读者可以学习到如何实际应用这些概念,包括如何配置和使用各种加密算法,以及如何在实际项目中解决安全问题。源代码中的示例将涵盖上述...

    AES加密解密 java实现

    这些工具类通常会提供更多的选项,如选择加密模式、填充方式,以及支持从字符串或文件读取密钥等。 总的来说,理解AES加密算法及其在Java中的实现是信息安全领域的重要基础知识。在开发过程中,正确使用加密技术...

    JAVA、Python、PHP一致的 "任意长度secret秘钥" 加解密AES/ECB/PKCS5Padding算法实现代码

    在IT行业中,加密技术是确保数据...在给定的标题和描述中,我们关注的是使用AES(Advanced Encryption Standard)加密算法的一种特定实现,它在JAVA、Python和PHP三种编程语言中保持一致,支持任意长度的secret秘钥...

Global site tag (gtag.js) - Google Analytics