Java第六课(加密文件内容及数值交换)

这篇博客介绍了如何使用Java进行简单的字符加密,通过异或操作实现加密和解密过程,并展示了不借助额外变量进行数值交换的方法。此外,还提供了一个实际例子,模拟了四位整数的加密过程,包括加5取模和位数交换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对内容进行加密用 ^ ;

例如:

public class jiami{
public static void main(String[] args){
    //原文
    char ch1='十';
    char ch2='点';
    char ch3='进';
    char ch4='攻';
    System.out.println("加密前原文原文:"+ch1+ch2+ch3+ch4);
    //对内容进行加密
    char secret='8';
    ch1=(char)(ch1^secret);
    ch2=(char)(ch2^secret);
    ch3=(char)(ch3^secret);
    ch4=(char)(ch4^secret);
    System.out.println("密文:"+ch1+ch2+ch3+ch4);
    //对内容进行解密
    ch1=(char)(ch1^secret);
    ch2=(char)(ch2^secret);
    ch3=(char)(ch3^secret);
    ch4=(char)(ch4^secret);
    System.out.println("解密后原文:"+ch1+ch2+ch3+ch4);
}
}

数值交换

例如:

public class jiaohuan{
    public static void main(String[] args){
    
    int a=1;
    int b=2;
    //1、借助第三变量实现两个数交换
    /*int temp=b;

    b=a;
    a=temp;
    System.out.println(a);
    System.out.println(b);*/
    2、不借助第三变量实现两个数交换
    a=a+b;
    b=a-b;
    a=a-b;
    System.out.println(a);
    System.out.println(b);
    }
}
 

例题

  1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

public class TestEncryption {

         public static void main(String[] args) {

                   //输入一个4位整数

                   Scanner s = new Scanner(System.in);

                   System.out.print("请输入一个4位正整数:");

                   int num = s.nextInt();            

                   //获取各个位上的数

                   int bit4 = (num / 1000); // 取千位的数字

                   int bit3 = (num / 100) % 10; // 取百位的数字

                   int bit2 = (num / 10) % 10; // 取十位的数字

                   int bit1 = num % 10; // 取个位的数字

                   //每位数字加5               

                   bit4 = (bit4+5)%10;

                   bit3 = (bit3+5)%10;

                   bit2 = (bit2+5)%10;

                   bit1 = (bit1+5)%10;

                   //交换第一位和第四位

                   int  temp;

                   temp = bit4;

                   bit4 = bit1;

                   bit1 = temp;

                   //交换第二位和第三位

                   temp = bit2;

                   bit2 = bit3;

                   bit3 = temp;

                   // 输出加密后数字                

                   //System.out.println("加密后的数字为:"+bit4+bit3+bit2+bit1);

                   int ennum = bit4*1000+bit3*100+bit2*10+bit1;

                   System.out.println("加密后的数字为:"+ennum);

                  

         }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值