九江阿里云代理商:AES加密工具类

以下是一个简单的AES加密工具类示例:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public class AESUtil {

    private static final String ALGORITHM = "AES";
    private static final String TRANSFORMATION = "AES/ECB/PKCS5Padding";
    private static final String CHARSET = "UTF-8";

    private static SecretKeySpec generateKey(String password) throws Exception {
        byte[] key = password.getBytes(CHARSET);
        return new SecretKeySpec(key, ALGORITHM);
    }

    public static String encrypt(String data, String password) throws Exception {
        SecretKeySpec key = generateKey(password);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.ENCRYPT_MODE, key);
        byte[] encrypted = cipher.doFinal(data.getBytes(CHARSET));
        return Base64.encodeBase64String(encrypted);
    }

    public static String decrypt(String encryptedData, String password) throws Exception {
        SecretKeySpec key = generateKey(password);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.DECRYPT_MODE, key);
        byte[] decrypted = cipher.doFinal(Base64.decodeBase64(encryptedData));
        return new String(decrypted, CHARSET);
    }
}

使用方法:

String password = "mysecretkey"; // 密钥
String data = "Hello, world!"; // 要加密的数据
String encrypted = AESUtil.encrypt(data, password); // 加密
String decrypted = AESUtil.decrypt(encrypted, password); // 解密
System.out.println("加密前:" + data);
System.out.println("加密后:" + encrypted);
System.out.println("解密后:" + decrypted);

输出结果:

加密前:Hello, world!
加密后:7Qo7vC36ePe0JopzKJk+hQ==
解密后:Hello, world!

以下是九江阿里云代理商提供的AES加密工具类:

import java.security.Key;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;

import org.apache.commons.codec.binary.Base64;

九江阿里云代理商:AES加密工具类

public class AESUtil {

private static final String UTF8 = "UTF-8";
private static final String KEY_ALGORITHM = "AES";
private static final String CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";

// 生成一个随机的AES密钥
public static String generateAESKey() throws Exception {
    KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_ALGORITHM);
    keyGenerator.init(128);
    Key key = keyGenerator.generateKey();
    byte[] keyBytes = key.getEncoded();
    return new Base64().encodeToString(keyBytes);
}

// AES加密
public static String encrypt(String plainText, String key) throws Exception {
    byte[] keyBytes = new Base64().decode(key.getBytes(UTF8));
    Key secretKey = new javax.crypto.spec.SecretKeySpec(keyBytes, KEY_ALGORITHM);
    Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
    cipher.init(Cipher.ENCRYPT_MODE, secretKey);
    byte[] encryptedBytes = cipher.doFinal(plainText.getBytes(UTF8));
    return new String(new Base64().encode(encryptedBytes), UTF8);
}

// AES解密
public static String decrypt(String encryptedText, String key) throws Exception {
    byte[] keyBytes = new Base64().decode(key.getBytes(UTF8));
    Key secretKey = new javax.crypto.spec.SecretKeySpec(keyBytes, KEY_ALGORITHM);
    Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
    cipher.init(Cipher.DECRYPT_MODE, secretKey);
    byte[] encryptedBytes = new Base64().decode(encryptedText.getBytes(UTF8));
    byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
    return new String(decryptedBytes, UTF8);
}

}

以上就是九江阿里云代理商提供的AES加密工具类,可以在Java项目中使用。如需使用其他编程语言,请参考相应的加密库。

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/117324.html

(0)
luotuoemo的头像luotuoemo
上一篇 2023年12月31日 16:12
下一篇 2023年12月31日 16:21

相关推荐

  • 阿里云计算logo

    怎么分辨网络机顶盒是安卓和阿里云系统 你这个应该是安卓的,开机界面显示安卓小人的是安卓系统的,显示阿里云logo的是阿里云系统的 什么是云计算?它和传统计算有什么标志性的区别? 云计算是不用你自己提供软硬件的安装,维护,要你多少计算,什么时候要,说一声即可;稳定,高可用性等一切性能都不是梦;说白了就是IT外包;更好专注自己核心业务;本身原理:利用一平台都整合…

    2023年8月26日
    5800
  • 阿里云国际站注册教程:android与ftp服务器端

    对于阿里云虚拟主机(国际版),只有支持FTP连接的主机能够使用FTP进行连接。 连接Android设备与FTP服务器端,你将需要FTPServer和FTPClient两部分。 在阿里云国际站注册 访问https://intl.aliyun.com/,点击上方的“Free Account” 输入你的邮箱地址和设置密码,然后点击“Next”。 完成身份验证,确认…

    2024年3月24日
    2700
  • 厦门阿里云代理商:阿里云GPU云服务器GN5

    阿里云GPU云服务器GN5是由阿里云推出的一款高性能计算服务器。它使用了强大的NVIDIA GPU加速技术,提供了卓越的计算能力和图形处理能力。GN5系列服务器适用于需要进行大规模科学计算、数据分析、人工智能训练等任务的用户。 GN5系列服务器提供了不同配置的GPU选项,包括NVIDIA Tesla V100、Tesla P100和Tesla M40等。这些…

    2023年12月21日
    4500
  • 阿里云盘下载资源要钱吗

    下载网上的共享文件得花钱吗 这也要看资源了,有些是要,有些不要,现在网上有很多免费的共享文件,不过要费点时间和精力去找。 在网站上下载文件需要钱的吗? 是要收钱的“`看你的网络商是怎么收费的 网上下载电影要付费吗? 有很多很多免费的噢真的很多很多!不过光免费,下载没速度也白搭对吧!先说用哪些下载工具吧!这些下载工具都有对应的免费资源发布网站,电影…

    2023年8月26日
    5900
  • 阿里云短信服务接口在哪

    阿里云短信服务接口可通过阿里云官网的短信服务页面进行调用和管理。具体步骤如下: 登录阿里云官网:https://www.aliyun.com/ 在官网首页或者导航栏中找到“产品分类”或者搜索框,输入“短信服务”,点击进入短信服务页面。 在短信服务页面中,可以看到API文档、SDK下载、短信发送、短信签名和模板管理等功能。 如果想要调用阿里云短信服务接口,可以…

    2023年11月5日
    6000

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/