zoukankan      html  css  js  c++  java
  • hutool-crypto 依赖 Aes加密,解密

    环境:springboot 2.4.0

    1.添加依赖

    <dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-crypto</artifactId>
    <version>5.5.4</version>
    </dependency>
    2.初始化Aes对象,四个参数
    2.1 Mode 枚举参数 选择加密模式
    public enum Mode {
    NONE,
    //CBC:基于IV的加密方案,该模式作为概率加密方案是安全的,假设随机IV,实现与随机比特的不可区分。 
        如果IV仅仅是nonce,则不能实现机密性,也不是如该标准错误建议的那样,在该方案使用的相同密钥下加密的nonce。
        Ciphertexts具有很强的可塑性。 没有选择的密文攻击(CCA)安全性。 对于许多填充方法,在存在正确填充的oracle的情况下,机密性将被取消。
        加密从本质上是连续的低效。 模式的隐私安全属性被广泛使用,导致频繁的误用。 可以用作CBC-MAC算法的构建块。 我认为CTR模式没有重要优势。
        CBC, 
    //CFB:基于IV的加密方案,该模式作为概率加密方案是安全的,假设随机IV,实现与随机比特的不可区分。
        如果IV是可预测的,也不是由在该方案使用的相同密钥下加密的随机数制作,如标准错误地建议的那样,则不能实现机密性。
        Ciphertexts是可塑的。 没有CCA安全性。 加密从本质上是连续的低效。 方案取决于参数s,1≤s≤n,通常s = 1或s = 8.对于需要一个阻塞调用仅处理s位而言效率低。
        该模式实现了一个有趣的“自同步”属性; 在密文中插入或删除任意数量的s位字符只会暂时中断正确的解密。
    CFB,
    //CTR:基于IV的加密方案,该模式实现了与假设nonce IV的随机位的不可区分性。 作为基于安全随机数的方案,该模式还可以用作概率加密方案,具有随机IV。
        如果nonce在加密或解密时被重用,则完全失去隐私。 模式的可并行性通常使其在某些设置中比其他机密性模式更快。 用于经过身份验证的加密方案的重要构建块。
        总的来说,通常是实现仅隐私加密的最佳和最现代的方式。
    CTR,
    CTS,
    ECB,
    OFB,
    PCBC;

    private Mode() {
    }
    }
    默认 Mode.NONE

    2.2 Padding 枚举参数
    public enum Padding {
    NoPadding,
    ZeroPadding,
    ISO10126Padding,
    OAEPPadding,
    PKCS1Padding,
    PKCS5Padding,
    SSL3Padding;

    private Padding() {
    }
    }
    2.3 key byte[] 随机值
    2.4 iv byte[] 随机值

    3.初始化
    Aes aes = new Aes(Mode.CBC,Padding.PKCS5Padding,key,iv);
    aes.encrypyHex(data);//加密
    aes.decryptStr(dataEncrypt);//解密


  • 相关阅读:
    演示Eclipse插件实现代码提示和补全
    重拾《 两周自制脚本语言 》- Eclipse插件实现语法高亮
    Kindle Windows版本 中文字体修改工具
    MD5加密算法原理及实现
    Spring boot 发送邮件示例
    ubuntu下svn的命令使用
    数据库的分区、分表、分库、分片的简介
    Vue 入门之目录结构介绍
    MQTT简单介绍与实现
    SVN使用规范
  • 原文地址:https://www.cnblogs.com/zf-crazy/p/14149826.html
Copyright © 2011-2022 走看看