All Classes and Interfaces
Class
Description
抽象的非对称加密对象,包装了加密和解密为Hex和Base64的封装
AES加密算法实现 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法
对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7
高级加密标准,是下一代的加密算法标准,速度快,安全级别高; AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, 对4×4的字节数组上进行操作
众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计 AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) 达到十亿量级
Argon2加密实现
ASN.1 – Abstract Syntax Notation dot one,抽象记法1 工具类。
非对称基础,提供锁、私钥和公钥的持有
基于BouncyCastle库封装的加密解密实现,包装包括:
BufferedBlockCipher
BlockCipher
StreamCipher
AEADBlockCipher
BouncyCastle库的
CipherParameters封装BCrypt加密算法实现。
Provider对象生产工厂类 通过SPI方式加载可用的
BouncyCastleProvider,并创建对应的Provider
spi定义在:META-INF/services/org.miaixz.bus.crypto.ProviderBouncyCastleProvider 工厂类安全相关工具类 加密分为三种: 1、对称加密(symmetric),例如:AES、DES等 2、非对称加密(asymmetric),例如:RSA、DSA等
3、摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC等
证书相关套件
ChaCha20算法实现 ChaCha系列流密码,作为salsa密码的改良版,具有更强的抵抗密码分析攻击的特性,“20”表示该算法有20轮的加密计算。
密码接口,提供统一的API,用于兼容和统一JCE和BouncyCastle等库的操作
process和doFinal组合使用,用于分块加密或解密。
Cipher所需参数,包括Key、Random、IV等信息
非对称加密算法
对称加密算法 在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。
非对称解密器接口,提供:
从bytes解密
从Hex(16进制)解密
从Base64解密
对称解密器接口,提供:
从bytes解密
从Hex(16进制)解密
从Base64解密
DES加密算法实现 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法 Java中默认实现为:DES/ECB/PKCS5Padding
数据加密标准,速度较快,适用于加密大量数据的场合
摘要算法 注意:此对象实例化后为非线程安全!
ECIES(集成加密方案,elliptic curve integrate encrypt scheme)
详细介绍见:https://blog.csdn.net/baidu_26954729/article/details/90437344 此算法必须引入Bouncy Castle库
非对称加密器接口,提供:
加密为bytes
加密为Hex(16进制)
加密为Base64
对称加密器接口,提供:
加密为bytes
加密为Hex(16进制)
加密为Base64
加解密服务提供
FPE(Format Preserving Encryption)实现,支持FF1和FF3-1模式。
FPE模式 FPE包括两种模式:FF1和FF3(FF2弃用),核心均为Feistel网络结构。
HMAC摘要算法 HMAC,全称为“Hash Message Authentication Code”,中文名“散列消息鉴别码” 主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
全局单例的
Provider对象
在此类加载时,通过SPI方式查找用户引入的加密库,查找对应的Provider实现,然后全局创建唯一的BouncyCastleProvider对象
用户依旧可以通过Holder.setUseCustomProvider(boolean) 方法选择是否使用自定义的Provider。HMAC-based one-time passwords (HOTP) 基于HMAC算法一次性密码生成器, 规范见:RFC 4226
提供
Cipher的方法包装JCE的
AlgorithmParameterSpec 参数包装密钥工具
密钥类型
MAC摘要算法(此类兼容和JCE的
javax.crypto.Mac对象和BC库的org.bouncycastle.crypto.Mac对象) MAC,全称为“Message
Authentication Code”,中文名“消息鉴别码” 主要是利用指定算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。MD5算法
补码方式 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组的长度。
PBKDF2应用一个伪随机函数以导出密钥,PBKDF2简单而言就是将salted hash进行多次重复计算。
高级加密标准,是下一代的加密算法标准,速度快,安全级别高; AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, 对4×4的字节数组上进行操作
众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计 AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) 达到十亿量级
系统中内置的策略映射 注解和实现之间映射
RSA公钥/私钥/签名加密解密
RSA 加密解密算法
加盐值魔数 用于在OpenSSL生成的密文中,提取加盐值等相关信息
OpenSSL中加盐解析器 参考:
签名包装,
Signature 包装类国密SM2非对称算法实现,基于BC库 SM2算法只支持公钥加密,私钥解密 参考:https://blog.csdn.net/pridas/article/details/86118774
RSA 加密解密算法
国密SM3杂凑(摘要)算法
国密对称堆成加密算法SM4实现
高级加密标准,是下一代的加密算法标准,速度快,安全级别高; AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, 对4×4的字节数组上进行操作
众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计 AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) 达到十亿量级
三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES) 使用 168
位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。
TEA(Corrected Block Tiny Encryption Algorithm)算法实现 来自:https://github.com/xxtea/xxtea-java
time-based one-time passwords (TOTP) 基于时间戳算法的一次性密码生成器
维吉尼亚密码实现。
祖冲之算法集(ZUC算法)实现,基于BouncyCastle实现。