All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dxy.library.util.cipher.constant.Mode Maven / Gradle / Ivy

The newest version!
package com.dxy.library.util.cipher.constant;

/**
 * 密码块工作模式(Block cipher mode of operation)
 * 是对于按块处理密码的加密方式的一种扩充,不仅仅适用于AES,包括DES, RSA等加密方法同样适用
 * 1、NoPadding填充情况下,CBC、ECB和PCBC三种模式是不支持的
 * 2、CFB、OFB两种模式下,加密数据长度等于原始数据长度
 * 3、PCBC是CBC的扩种,较少使用,故而没有引入
 * @author duanxinyuan
 * 2019/2/19 20:52
 */
public enum Mode {

    //无模式,对称加密不支持
    NONE("NONE"),

    //电子密码本,每块独立加密,有点:分块可以并行处理,缺点:同样的原文得到相同的密文,容易被攻击
    ECB("ECB"),

    //密码分组链接,每块加密依赖于前一块的密文,优点:同样的原文得到不同的密文、原文微小改动影响后面全部密文,缺点:加密需要串行处理,误差传递
    CBC("CBC"),

//    //填充密码块链接,CBC的扩种,较少使用,优点:同样的原文得到不同的密文,互换两个邻接的密文块不会对后续块的解密造成影响,缺点:加密需要串行处理
//    PCBC("PCBC"),

    //密文反馈
    CFB("CFB"),

    //输出反馈模式,加密后密文与原文异或XOR,缺点:能够对密文进行校验
    OFB("OFB"),

    //计数器模式,增加一个序列函数对所有密文快做XOR
    CTR("CTR");

    String mode;

    Mode(String mode) {
        this.mode = mode;
    }

    public String getMode() {
        return mode;
    }

    public void setMode(String mode) {
        this.mode = mode;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy