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

相关推荐

  • 扬州阿里云代理商:阿里云邮箱发件服务器

    阿里云邮箱的发件服务器地址是:smtp.aliyun.com 需要使用SMTP协议和相应的端口号登录阿里云邮箱发件服务器。 注意:如果您是扬州地区的阿里云代理商,可能需要访问特定的阿里云邮箱代理服务器,请咨询阿里云客服获取详细的服务器配置信息。 扬州阿里云代理商是阿里云的授权代理商,可以提供阿里云产品的销售和技术支持服务。关于阿里云邮箱发件服务器的设置,具体…

    2024年2月13日
    63900
  • 长葛阿里云企业邮箱代理商:钉钉企业邮箱与钉钉个人邮箱区别

    长葛阿里云企业邮箱代理商:钉钉企业邮箱与钉钉个人邮箱区别 一、钉钉企业邮箱 钉钉企业邮箱是一款专为企业定制的高效沟通协作工具。它集成了阿里云企业邮箱的邮件服务,同时结合了钉钉的即时通讯和协同办公功能。以下是钉钉企业邮箱的特点: 企业级安全:采用多重安全防护机制,包括SSL/TLS加密传输、反垃圾邮件、反病毒等,保障企业邮件的安全性。 高效协作:通过邮件、群组…

    2024年1月27日
    72700
  • 长春阿里云代理商:android 网络异常

    如果你遇到了Android设备上的网络异常问题,你可以尝试以下解决方法: 检查你的网络连接:确保你的Android设备已正确连接到可用的Wi-Fi网络或移动数据网络。你可以尝试重新连接网络或重启设备。 清除应用缓存:打开“设置”应用,找到“应用” 或 “应用管理”,找到你遇到网络问题的应用。选择该应用并点击“存储”或“缓存”,然后清除缓存。 重启应用:有时候…

    2024年2月5日
    78500
  • 阿里云商标怎么卖

    如果您想出售阿里云的商标,您可以按照以下步骤进行: 确认商标的所有权:确保您是商标的合法所有者,并且有权出售商标。 评估商标价值:了解市场对阿里云商标的需求和价格,可以参考类似商标的出售价格,或者请专业评估机构进行评估。 寻找买家或经纪人:您可以在商标交易平台、商标买卖平台或相关论坛上发布出售信息,或者联系商标经纪人寻找潜在买家。 出售方式:商标的出售方式可…

    2023年9月27日
    71300
  • 阿里云企业邮箱的邮箱别名能设置别名显示顺序吗?

    阿里云企业邮箱的优势及邮箱别名设置说明 一、阿里云企业邮箱的优势: 1. 安全可靠:阿里云企业邮箱采用世界领先的安全技术,保障您的企业信息不受泄露或攻击。 2. 大容量存储:每个邮箱账号都拥有较大的存储空间,能够轻松存储大量的邮件和附件。 3. 管理方便:可以通过电脑、手机等多种设备方便地管理和查看邮件,提高工作效率。 4. 兼容性强:支持与各种邮箱客户端和…

    2024年10月27日
    67200

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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