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

快速简单的字符串在JAVA中加密/解密

在Java中,可以使用Java标准库中的加密和解密工具进行快速简单的字符串加密/解密。以下是一个简单的示例,使用Java标准库中的Cipher类进行AES加密/解密。

首先,需要导入以下依赖:

代码语言:java
复制
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

然后,可以创建一个加密/解密的工具类:

代码语言:java
复制
public class AESUtil {

    private static final String ALGORITHM = "AES";
    private static final String TRANSFORMATION = "AES";

    public static String encrypt(String key, String data) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), ALGORITHM);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
        byte[] encryptedBytes = cipher.doFinal(data.getBytes());
        return Base64.getEncoder().encodeToString(encryptedBytes);
    }

    public static String decrypt(String key, String encryptedData) throws Exception {
        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), ALGORITHM);
        Cipher cipher = Cipher.getInstance(TRANSFORMATION);
        cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
        byte[] decodedBytes = Base64.getDecoder().decode(encryptedData);
        byte[] decryptedBytes = cipher.doFinal(decodedBytes);
        return new String(decryptedBytes);
    }
}

接下来,可以使用该工具类进行加密/解密操作:

代码语言:java
复制
public static void main(String[] args) {
    String key = "1234567812345678"; // 密钥长度必须为16、24或32字节
    String data = "Hello, world!";

    try {
        String encryptedData = AESUtil.encrypt(key, data);
        System.out.println("Encrypted data: " + encryptedData);

        String decryptedData = AESUtil.decrypt(key, encryptedData);
        System.out.println("Decrypted data: " + decryptedData);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

以上示例中,我们使用了AES加密算法,并使用了Java标准库中的Cipher类进行加密/解密操作。需要注意的是,加密和解密时使用的密钥必须相同,且密钥长度必须为16、24或32字节。

此外,还可以使用其他加密算法和工具类进行加密/解密操作,例如DES、RC4、RSA等算法,以及Java标准库中的其他加密工具类。

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

相关·内容

5分23秒

010_尚硅谷_Scala_在IDE中编写HelloWorld(三)_代码中语法的简单说明

33分30秒

Java零基础-299-多态在开发中的作用

9分4秒

Java零基础-300-总结多态在开发中的作用

11分25秒

day20_常用类/10-尚硅谷-Java语言高级-JVM中涉及字符串的内存结构

9分51秒

day20_常用类/10-尚硅谷-Java语言高级-JVM中涉及字符串的内存结构

9分51秒

day20_常用类/10-尚硅谷-Java语言高级-JVM中涉及字符串的内存结构

23分5秒

day24_集合/11-尚硅谷-Java语言高级-HashMap在JDK7中的源码分析

23分40秒

day24_集合/12-尚硅谷-Java语言高级-HashMap在JDK8中的源码分析

23分5秒

day24_集合/11-尚硅谷-Java语言高级-HashMap在JDK7中的源码分析

23分40秒

day24_集合/12-尚硅谷-Java语言高级-HashMap在JDK8中的源码分析

23分5秒

day24_集合/11-尚硅谷-Java语言高级-HashMap在JDK7中的源码分析

23分40秒

day24_集合/12-尚硅谷-Java语言高级-HashMap在JDK8中的源码分析

领券