九江阿里云代理商: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

相关推荐

  • 阿里云服务器怎么销毁

    要销毁阿里云服务器,可以按照以下步骤操作: 登录阿里云控制台(https://www.aliyun.com/)。 在控制台页面,找到并点击左侧导航栏中的“云服务器ECS”。 在ECS管理页面,找到需要销毁的服务器实例,在操作栏中点击“更多”按钮,选择“释放”。也可以通过选中需要销毁的实例,在页面顶部点击“释放”按钮。 在释放实例的弹窗中,会显示该实例释放后的…

    2023年8月16日
    28400
  • 武汉阿里云代理商:阿里云 多语言环境配置文件

    在武汉地区,如果您是阿里云代理商,可以根据客户的需求配置多语言环境的配置文件。下面是一个示例配置文件: { "languages": [ { "name": "中文", "code": "zh-CN" }, { "name": "…

    2024年2月24日
    31000
  • 襄阳阿里云代理商:app服务器接口开发教程

    作为襄阳阿里云代理商,我们提供了以下app服务器接口开发教程,帮助开发者快速搭建和实现自己的app服务: 确定需求:首先,开发者需要明确自己的app服务需要提供哪些功能和接口,包括用户登录、数据获取、数据上传、推送通知等等。 设计接口:根据需求,设计好接口的URL和参数,并确定接口返回的数据格式。 编写代码:根据接口设计,编写服务器端的代码,实现各个接口的功…

    2024年2月27日
    26100
  • 台湾阿里云代理商:阿里云官网等保备案

    阿里云官网备案是指注册阿里云官方网站的域名,并进行相关备案申请。在台湾地区,需要通过阿里云的代理商进行备案申请。 台湾的阿里云代理商通常会提供如下服务: 帮助客户注册阿里云官网域名,包括提供域名的选择和注册流程的指导; 协助客户进行备案申请,包括填写备案申请表格、提供所需文件材料、指导备案流程等; 跟踪备案审核进度,及时处理备案中的问题和疑虑; 提供其他与阿…

    2024年1月7日
    27500
  • 如何提高阿里云企业邮箱的邮件发送成功率和稳定性在复杂网络环境下?

    如何提高阿里云企业邮箱的邮件发送成功率和稳定性在复杂网络环境下 在当今全球化的商业环境中,企业对电子邮件的依赖日益增加,邮件的发送成功率和稳定性直接影响着沟通效率和业务运作。特别是在复杂网络环境下,提升阿里云企业邮箱的邮件发送成功率和稳定性成为了一个关键问题。本文将结合阿里云企业邮箱的特性以及阿里云企业邮箱代理商的优势,深入探讨如何在复杂网络环境下提高邮件的…

    2024年10月31日
    22200

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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