使用java编程实现明文和密文之间的互转

        char c[] = "大家好".toCharArray();
        for(int i = 0;i<c.length;i++) {
        	c[i] = (char)(c[i] ^ 'Q');//将明文转换成密文
        }
        String string = new String(c, 0, c.length);
        System.out.println("密文:" + string);
        for(int i=0;i<c.length;i++) {
        	c[i] = (char)(c[i] ^ 'Q');//将密文还原为明文
        }
        String string1 = new String(c, 0, c.length);
        System.out.println("明文:" + "\n" + string1);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java代码实现DES加解密算法,包括密钥明文密文和用户输入: ```java import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Scanner; public class DesEncryptionExample { public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); // 生成DES密钥 KeyGenerator keyGenerator = KeyGenerator.getInstance("DES"); keyGenerator.init(56); SecretKey secretKey = keyGenerator.generateKey(); // 显示密钥明文 byte[] keyBytes = secretKey.getEncoded(); String keyPlainText = new String(keyBytes, StandardCharsets.UTF_8); System.out.println("密钥明文:" + keyPlainText); // 加密用户输入 System.out.print("请输入要加密的内容:"); String plainText = scanner.nextLine(); byte[] plainBytes = plainText.getBytes(StandardCharsets.UTF_8); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] cipherBytes = cipher.doFinal(plainBytes); // 显示密文 String cipherText = Base64.getEncoder().encodeToString(cipherBytes); System.out.println("密文:" + cipherText); // 解密密文 cipher.init(Cipher.DECRYPT_MODE, secretKey); byte[] decryptedBytes = cipher.doFinal(cipherBytes); // 显示解密后的明文 String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8); System.out.println("解密后的明文:" + decryptedText); } } ``` 在运行程序时,用户可以输入要加密的内容,程序会随机生成一个DES密钥并使用该密钥对用户输入进行加密,然后显示密钥明文密文,并最终将密文解密并显示出解密后的明文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值