国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Hutool對AES加密解密

這篇具有很好參考價(jià)值的文章主要介紹了使用Hutool對AES加密解密。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 前言

AES是一種對稱加密,所謂對稱加密就是加密與解密使用的秘鑰是一個(gè)。

2. Maven環(huán)境安裝

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.2</version>
</dependency>

3.加密模式

AES 加密最常用的模式就是 ECB模式 和 CBC 模式,當(dāng)然還有很多其它模式,他們都屬于AES加密。ECB模式和CBC 模式倆者區(qū)別就是 ECB 不需要 iv偏移量,而CBC需要。

4.AES加密使用參數(shù)

以下參數(shù)都是在python中使用的。
hutool aes加密,java,https,http

  • 秘鑰必須為16字節(jié)或者16字節(jié)的倍數(shù)的字節(jié)型數(shù)據(jù)。
  • 明文必須為16字節(jié)或者16字節(jié)的倍數(shù)的字節(jié)型數(shù)據(jù),如果不夠16字節(jié)需要進(jìn)行補(bǔ)全。

5.Hutool


import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;

import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;

/**
 * @author gogo
 */
public class SymmetricCryptoUtil {
    /**
     * 16字節(jié)
     */
    private static final String ENCODE_KEY = "1234567812345678";
    private static final String IV_KEY = "0000000000000000";

    public static void main(String[] args) {
        String encryptData = encryptFromString("zdm321123.", Mode.CBC, Padding.ZeroPadding);
        System.out.println("加密:" + encryptData);
        String decryptData = decryptFromString(encryptData, Mode.CBC, Padding.ZeroPadding);
        System.out.println("解密:" + decryptData);
    }

    public static String encryptFromString(String data, Mode mode, Padding padding) {
        AES aes;
        if (Mode.CBC == mode) {
            aes = new AES(mode, padding,
                    new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"),
                    new IvParameterSpec(IV_KEY.getBytes()));
        } else {
            aes = new AES(mode, padding,
                    new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"));
        }
        return aes.encryptBase64(data, StandardCharsets.UTF_8);
    }

    public static String decryptFromString(String data, Mode mode, Padding padding) {
        AES aes;
        if (Mode.CBC == mode) {
            aes = new AES(mode, padding,
                    new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"),
                    new IvParameterSpec(IV_KEY.getBytes()));
        } else {
            aes = new AES(mode, padding,
                    new SecretKeySpec(ENCODE_KEY.getBytes(), "AES"));
        }
        byte[] decryptDataBase64 = aes.decrypt(data);
        return new String(decryptDataBase64, StandardCharsets.UTF_8);
    }

}

加密:uhm2VC27Dm5j1P/LTYBdrQ==
解密:dddd321123.文章來源地址http://www.zghlxwxcb.cn/news/detail-519941.html

到了這里,關(guān)于使用Hutool對AES加密解密的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java:AES加密和解密

    java:AES加密和解密

    1 前言 對稱加密,即單秘鑰加密,指加密和解密的過程中,使用相同的秘鑰,相比于非對稱加密,因僅有一把鑰匙,故而速度更快,更適合解密大文件(常見于如視頻文件的加密解密中)。AES算法就屬于對稱加密中的一種。 2 使用 依賴引入: AES加密與解密的工具類封裝: 執(zhí)

    2024年02月11日
    瀏覽(22)
  • Java 實(shí)現(xiàn) AES 加密和解密完整示例

    AES,全稱為 Advanced Encryption Standard,是一種分組密碼算法,用于保護(hù)敏感數(shù)據(jù)的傳輸和存儲。AES 分為 128 位和 256 位兩種密鑰長度,可以對數(shù)據(jù)進(jìn)行加密和解密,保證數(shù)據(jù)的安全性和完整性。AES 主要應(yīng)用于電子商務(wù)、移動支付、網(wǎng)絡(luò)安全等領(lǐng)域,被廣泛運(yùn)用于現(xiàn)代社會的各個(gè)

    2024年02月04日
    瀏覽(32)
  • 用java語言寫一個(gè)AES算法,使用AES(CBC模式)對數(shù)據(jù)進(jìn)行加密或解密。加解密用到的密鑰(Key)和密鑰偏移量(IV),代碼實(shí)例類編寫。

    以下是一個(gè)使用Java編寫的AES算法實(shí)例,使用AES(CBC模式)對數(shù)據(jù)進(jìn)行加密和解密。代碼中包括了生成隨機(jī)密鑰和密鑰偏移量的方法。 java Copy code import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.InvalidAlgorithmParameterException; import

    2024年02月07日
    瀏覽(33)
  • go語言使用AES加密解密

    Go語言提供了標(biāo)準(zhǔn)庫中的crypto/aes包來支持AES加密和解密。下面是使用AES-128-CBC模式加密和解密的示例代碼:

    2024年02月06日
    瀏覽(28)
  • 解決cryptoJS.AES默認(rèn)參數(shù)加密,java無法解密的問題

    有時(shí)候我們需要跨編程語言進(jìn)行加密加密。比如nodejs里面加密,java里面解密,或者反過來java加密,nodejs解密。node可以使用cryptojs,java可以使用javax.crypto.Cipher包。 網(wǎng)上有很多關(guān)于這方面的文章。然而如果node使用了默認(rèn)的參數(shù)進(jìn)行加密(比如現(xiàn)有業(yè)務(wù)已經(jīng)生成了一些已經(jīng)加密

    2024年02月11日
    瀏覽(75)
  • Hutool-crypto 加密、解密詳解!

    Hutool-crypto 加密、解密詳解!

    在Java開發(fā)的過程中,很多場景下都需要加密解密。 比如對敏感數(shù)據(jù)的加密,對配置文件信息的加密,通信數(shù)據(jù)的加密等等。 今天介紹的是Hutool工具包中的加密模塊?crypto。 加密分為三類: 對稱加密(symmetric) 常用的有AES、DES 非對稱加密(asymmetric) 常用的有RSA,DSA 摘要加

    2024年02月06日
    瀏覽(22)
  • 前端AES加密解密

    前端經(jīng)常會遇到這種接口和參數(shù)需要加密的情況,目前用的最多的就是aes加密了。以下就是操作步驟。以下方式適用各個(gè)前端框架,請自行根據(jù)框架修改對應(yīng)語法 1.安裝 CryptoJS 這個(gè)庫就是用來加密的核心,直接打開項(xiàng)目終端,輸入 npm install crypto-js --save 2. 新建 crypto.js 在 @/

    2024年02月13日
    瀏覽(34)
  • php對稱加密AES加密解密

    php對稱加密AES加密解密

    AES-128-ECB和AES-256-CBC是兩種常見的AES加密模式,它們在加密方式和安全性上有以下區(qū)別: 加密方式: AES-128-ECB:ECB(Electronic Codebook)模式是最簡單的AES加密模式,它將數(shù)據(jù)分成固定大小的塊,每個(gè)塊獨(dú)立加密。這意味著相同的明文塊將始終加密為相同的密文塊,因此ECB模式不

    2024年02月09日
    瀏覽(25)
  • uniapp AES加密解密

    uniapp里我知道的有兩種aes加密解密方式。 一、引入crypto-js 1.需要在uniapp項(xiàng)目根目錄里,打開命令行,執(zhí)行如下命令: 2.在項(xiàng)目根目錄,創(chuàng)建一個(gè)utils文件夾,并創(chuàng)建一個(gè)aes_endecrypt.js文件 ?3.在main.js文件中,引入方法,并注冊為全局方法 4.在頁面中使用aes加密,解密 二、第二

    2024年02月13日
    瀏覽(26)
  • Android AES加密解密

    Android AES加密解密

    ?AES算法全稱Advanced Encryption Standard。它是典型的“對稱加密算法”,主要作用是保證私密信息不被泄露。 一、密鑰 密鑰是AES算法實(shí)現(xiàn)加密和解密的根本,因?yàn)?它對明文的加密和解密需要使用同一個(gè)密鑰 。 AES支持三種長度的密鑰:128位,192位,256位。 二、填充 AES算法在對明

    2024年02月04日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包