Package org.aoju.bus.crypto.symmetric
package org.aoju.bus.crypto.symmetric
对称加密算法实现,包括AES、DES、DESede等
- Since:
- Java 17+
- Author:
- Kimi Liu
-
ClassDescriptionAES加密算法实现 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法 对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7 相关概念说明:ChaCha20算法实现 ChaCha系列流密码,作为salsa密码的改良版,具有更强的抵抗密码分析攻击的特性,“20”表示该算法有20轮的加密计算对称加密算法 在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。 收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。 在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称解密器接口,提供: 从bytes解密 从Hex(16进制)解密 从Base64解密DES加密算法实现 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法 Java中默认实现为:DES/CBC/PKCS5PaddingDESede是由DES对称加密算法改进后的一种对称加密算法,又名3DES、TripleDES 使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性 如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES Java中默认实现为:DESede/ECB/PKCS5Padding对称加密器接口,提供: 加密为bytes 加密为Hex(16进制) 加密为Base64FPE(Format Preserving Encryption)实现,支持FF1和FF3-1模式 相关介绍见:https://anquan.baidu.com/article/193FPE模式 FPE包括两种模式:FF1和FF3(FF2弃用),核心均为Feistel网络结构PBKDF2应用一个伪随机函数以导出密钥,PBKDF2简单而言就是将salted hash进行多次重复计算。 参考:https://blog.csdn.net/huoji555/article/details/83659687RC4加密解密算法实现 注意:由于安全问题,已经基本不在HTTPS中使用了 来自:https://github.com/xSAVIKx/RC4-cipher/blob/master/src/main/java/com/github/xsavikx/rc4/RC4.java国密对称堆成加密算法SM4实现 国密算法包括: 非对称加密和签名:SM2 摘要签名算法:SM3 对称加密:SM4维吉尼亚密码实现 人们在恺撒移位密码的基础上扩展出多表密码,称为维吉尼亚密码 算法实现来自:https://github.com/zhaorenjie110/SymmetricEncryptionAndDecryption祖冲之算法集(ZUC算法)实现,基于BouncyCastle实现。ZUC类型,包括128位和256位