首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java使用AES 256和128对称密钥加密

是一种常见的加密方式,AES(Advanced Encryption Standard)是一种对称加密算法,它使用相同的密钥进行加密和解密操作。

AES 256和AES 128是AES算法的不同密钥长度,分别使用256位和128位的密钥。AES 256相对于AES 128来说,密钥长度更长,安全性更高,但加密解密的速度稍慢一些。

对称密钥加密是指加密和解密使用相同的密钥。在Java中,可以使用javax.crypto包提供的AES算法进行对称密钥加密。以下是使用AES 256和128对称密钥加密的示例代码:

代码语言:java
复制
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class AESEncryption {
    private static final String AES_ALGORITHM = "AES";

    public static String encrypt(String plaintext, String key) throws Exception {
        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), AES_ALGORITHM);
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8));
        return Base64.getEncoder().encodeToString(encryptedBytes);
    }

    public static String decrypt(String ciphertext, String key) throws Exception {
        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), AES_ALGORITHM);
        Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(ciphertext));
        return new String(decryptedBytes, StandardCharsets.UTF_8);
    }

    public static void main(String[] args) throws Exception {
        String plaintext = "Hello, World!";
        String key = "0123456789abcdef"; // 128-bit key

        String encryptedText = encrypt(plaintext, key);
        System.out.println("Encrypted Text: " + encryptedText);

        String decryptedText = decrypt(encryptedText, key);
        System.out.println("Decrypted Text: " + decryptedText);
    }
}

在上述示例代码中,我们使用AES算法和Base64编码对字符串进行加密和解密。encrypt方法接受明文和密钥作为输入,返回加密后的密文。decrypt方法接受密文和密钥作为输入,返回解密后的明文。

AES对称密钥加密在实际应用中具有广泛的应用场景,例如保护敏感数据、加密通信、数字签名等。腾讯云提供了多个与加密相关的产品和服务,例如腾讯云密钥管理系统(KMS)用于管理密钥,腾讯云SSL证书服务用于保护网站和应用程序的安全通信等。

腾讯云密钥管理系统(KMS)产品介绍链接:https://cloud.tencent.com/product/kms

腾讯云SSL证书服务产品介绍链接:https://cloud.tencent.com/product/ssl

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

5分9秒

07-尚硅谷-微信支付-支付安全-对称加密和非对称加密

领券