欢迎访问宙启技术站
智能推送

实现加密和解密函数的Java代码

发布时间:2023-07-03 12:03:56

加密和解密是信息安全领域中非常重要的功能,可以用于保护敏感数据的安全性。下面是使用Java编写的加密和解密函数的示例代码。

加密函数的实现如下:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class EncryptionUtils {
    private static final String ALGORITHM = "AES";
    private static final String SECRET_KEY = "YourSecretKey123";

    public static String encrypt(String data) {
        try {
            SecretKeySpec secretKey = new SecretKeySpec(SECRET_KEY.getBytes(StandardCharsets.UTF_8), ALGORITHM);
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
            byte[] encryptedData = cipher.doFinal(data.getBytes());
            return Base64.getEncoder().encodeToString(encryptedData);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

解密函数的实现如下:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class DecryptionUtils {
    private static final String ALGORITHM = "AES";
    private static final String SECRET_KEY = "YourSecretKey123";

    public static String decrypt(String encryptedData) {
        try {
            SecretKeySpec secretKey = new SecretKeySpec(SECRET_KEY.getBytes(StandardCharsets.UTF_8), ALGORITHM);
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            byte[] decryptedData = cipher.doFinal(Base64.getDecoder().decode(encryptedData));
            return new String(decryptedData);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

这个示例代码使用了AES加密算法和Base64编码。需要注意的是,为了保证加密和解密的一致性,需要使用相同的秘钥(SECRET_KEY)。

使用这两个函数进行加密和解密的示例用法如下:

public class Main {
    public static void main(String[] args) {
        String plaintext = "Hello, World!";
        String encryptedText = EncryptionUtils.encrypt(plaintext);
        System.out.println("Encrypted Text: " + encryptedText);
        String decryptedText = DecryptionUtils.decrypt(encryptedText);
        System.out.println("Decrypted Text: " + decryptedText);
    }
}

这个示例代码中,首先对明文进行加密得到加密文本,然后使用解密函数对加密文本进行解密得到原始明文。

需要注意的是,加密和解密函数的异常处理仅打印了异常信息,并返回了null。在实际应用中,可以根据具体需求进行更详细的异常处理。

这是一个简单的加密和解密函数的示例代码,可以根据具体需求进行修改和扩展。加密和解密函数的选择和实现要根据具体的应用场景和安全需求来进行。