温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Java实现XOR加密解密

发布时间:2025-10-16 08:20:41 来源:亿速云 阅读:122 作者:小樊 栏目:编程语言

在Java中,你可以使用javax.crypto包中的类来实现XOR加密和解密。XOR(异或)加密是一种简单的加密技术,它将明文与密钥进行异或操作来生成密文,同样的操作也可以用来解密。

以下是一个简单的XOR加密和解密的Java示例:

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

public class XOREncryption {

    public static String encrypt(String plainText, String key) throws Exception {
        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        byte[] encrypted = cipher.doFinal(plainText.getBytes());
        return Base64.getEncoder().encodeToString(encrypted);
    }

    public static String decrypt(String encryptedText, String key) throws Exception {
        SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        byte[] decoded = Base64.getDecoder().decode(encryptedText);
        byte[] decrypted = cipher.doFinal(decoded);
        return new String(decrypted, StandardCharsets.UTF_8);
    }

    public static void main(String[] args) {
        try {
            String plainText = "Hello, World!";
            String key = "ThisIsASecretKey";

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

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

在这个例子中,我们使用了AES算法进行XOR加密和解密。encrypt方法接受明文和密钥作为参数,返回加密后的字符串。decrypt方法接受加密后的字符串和密钥作为参数,返回解密后的明文。

注意:在实际应用中,密钥管理非常重要。在这个示例中,我们直接使用了字符串作为密钥,这在实际应用中是不安全的。你应该使用更安全的方式来存储和管理密钥,例如使用密钥库(KeyStore)或者环境变量。

此外,这个示例使用了ECB模式,它是AES算法的一种工作模式。然而,ECB模式在某些情况下可能不够安全,因为它不提供足够的数据混淆。在实际应用中,你可能需要使用更安全的模式,如CBC(Cipher Block Chaining)或GCM(Galois/Counter Mode)。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手