Package org.miaixz.bus.crypto.center


package org.miaixz.bus.crypto.center
加密解密模块,实现了对JDK中加密解密算法的封装。
 1. 对称加密,例如:AES、DES等
 2. 非对称加密,例如:RSA、DSA等
 3. 摘要加密,例如:MD5、SHA-1、SHA-256、HMAC等
 
Since:
Java 17+
Author:
Kimi Liu
  • Class
    Description
    AES加密算法实现 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法 对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7
    ASN.1 – Abstract Syntax Notation dot one,抽象记法1 工具类。 ASN.1描述了一种对数据进行表示、编码、传输和解码的数据格式。它的编码格式包括DER、BER、DL等
    BCrypt加密算法实现。由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。
    ChaCha20算法实现 ChaCha系列流密码,作为salsa密码的改良版,具有更强的抵抗密码分析攻击的特性,“20”表示该算法有20轮的加密计算。
    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库
    FPE(Format Preserving Encryption)实现,支持FF1和FF3-1模式。 相关介绍见:https://anquan.baidu.com/article/193
    FPE模式 FPE包括两种模式:FF1和FF3(FF2弃用),核心均为Feistel网络结构。
    HMAC摘要算法 HMAC,全称为“Hash Message Authentication Code”,中文名“散列消息鉴别码” 主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。 一般的,消息鉴别码用于验证传输于两个共 同享有一个密钥的单位之间的消息。 HMAC 可以与任何迭代散列函数捆绑使用。MD5 和 SHA-1 就是这种散列函数。HMAC 还可以使用一个用于计算和确认消息鉴别值的密钥。 注意:此对象实例化后为非线程安全!
    HMAC-based one-time passwords (HOTP) 基于HMAC算法一次性密码生成器, 规范见:RFC 4226
    MAC摘要算法(此类兼容和JCE的 javax.crypto.Mac对象和BC库的org.bouncycastle.crypto.Mac对象) MAC,全称为“Message Authentication Code”,中文名“消息鉴别码” 主要是利用指定算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。 一般的,消息鉴别码用于验证传输于两个共同享有一个密钥的单位之间的消息。 注意:此对象实例化后为非线程安全!
    MD5算法
    PBKDF2应用一个伪随机函数以导出密钥,PBKDF2简单而言就是将salted hash进行多次重复计算。 参考:https://blog.csdn.net/huoji555/article/details/83659687
    RSA公钥/私钥/签名加密解密
    签名包装,Signature 包装类
    国密SM2非对称算法实现,基于BC库 SM2算法只支持公钥加密,私钥解密 参考:https://blog.csdn.net/pridas/article/details/86118774
    国密SM3杂凑(摘要)算法
    国密对称堆成加密算法SM4实现
    三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES) 使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。 如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。 Java中默认实现为:DESede/ECB/PKCS5Padding
    TEA(Corrected Block Tiny Encryption Algorithm)算法实现 来自:https://github.com/xxtea/xxtea-java
    time-based one-time passwords (TOTP) 基于时间戳算法的一次性密码生成器
    维吉尼亚密码实现。 人们在恺撒移位密码的基础上扩展出多表密码,称为维吉尼亚密码。 算法实现来自:https://github.com/zhaorenjie110/SymmetricEncryptionAndDecryption
    祖冲之算法集(ZUC算法)实现,基于BouncyCastle实现。