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

相关推荐

  • 高唐阿里云企业邮箱代理商:钉钉上的企业邮箱在哪

    高唐阿里云企业邮箱代理商:钉钉上的企业邮箱在哪 阿里云企业邮箱优势 阿里云企业邮箱作为一款企业级电子邮件解决方案,具有以下优势: 稳定可靠:基于阿里云底层技术支持,保证了邮箱系统的高可用性和安全性。 扩展性强:支持企业自定义域名,满足不同企业的个性化需求。 强大的管理能力:提供丰富的邮件管理功能,包括用户管理、组织架构管理、邮箱空间管理等。 全平台支持:支持…

    2024年1月23日
    59000
  • 阿里巴巴云客服语音客服详细介绍考题

    以下是阿里巴巴云客服语音客服的详细介绍考题: 阿里巴巴云客服语音客服的主要功能是什么? 请说明阿里巴巴云客服语音客服的部署方式。 请简要介绍一下阿里巴巴云客服语音客服提供的自动语义理解能力。 阿里巴巴云客服语音客服支持哪些导入方式来提供训练数据集? 阿里巴巴云客服语音客服的语音识别准确率如何保证? 阿里巴巴云客服语音客服提供了哪些场景的预置技能? 阿里巴巴云…

    2023年9月10日
    66100
  • 阿里巴巴云计算谁发明的

    云计算发源于哪个国家 云计算发源于美国早在60年代麦卡锡(John McCarthy)就提出了把计算能力作为一种象水和电一样的公用事业提供给用户。云计算的第一个里程碑是,1999年IBM提出的通过一个网站向企业提供企业级的应用的概念 云计算概念是谁提出的约翰.盖奇是哪个国家的 “云计算”起源于1988年SUN微系统公司的合作创建者约翰.盖奇首次提…

    2023年8月25日
    63400
  • 阿里云短信服务签名不通过会怎么样

    当阿里云短信服务签名不通过时,您将无法使用该签名发送短信。阿里云短信服务有严格的签名审核机制,目的是为了防止垃圾、欺诈、不合法等信息的传播,并保护用户的隐私与安全。 如果您的签名未通过审核,您可以根据阿里云短信服务的审核意见进行修改并重新提交签名审核。注意,修改的签名要符合相关规范和要求,以提高通过审核的概率。 未通过签名审核可能会导致您的短信服务受到限制,…

    2023年9月11日
    59800
  • 赤峰阿里云企业邮箱代理商:阿里云域名邮箱后台地址

    赤峰阿里云企业邮箱代理商:阿里云域名邮箱后台地址 阿里云企业邮箱是一款功能强大,稳定可靠的企业级邮箱解决方案。作为赤峰地区的阿里云企业邮箱代理商,我们为您提供专业的服务和支持。通过阿里云企业邮箱,您可以轻松管理企业内部的邮件通讯,提高工作效率。 阿里云企业邮箱的优势: 1. 安全性高:阿里云企业邮箱采用多种加密技术保障邮件的安全性,防止恶意攻击和数据泄露。 …

    2024年2月26日
    66900

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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