利用数组进行加密

package 补做题;

import java.util.Scanner;

public class jiaMi {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个四位整数");
int num = input.nextInt();
int nums[]=new int[4];

int k=nums.length-1;
while(num>=1){
nums[k]=(int)(num%10+5)%10;//+5对10求模
num/=10;
k--;
}
System.out.println("加密前整理时的数据:");
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]+" ");
}
//进行加密
System.out.println("加密前整理后的数据:");
for(int i=0;i<nums.length/2;i++){//注意循环/2次,且不能加1
int temp=nums[i];
nums[i]=nums[nums.length-1-i];//0+9=9,1+8=9
nums[nums.length-1-i]=temp;
}
//显示加密后的数据
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]+" ");
}

}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的利用数组和函数实现报文加密和解密的示例代码(报文密码为"hello"): ```c #include <stdio.h> #include <string.h> #define MAX_LEN 80 #define KEY "hello" void encrypt(char *message, char *key) { int len = strlen(key); for (int i = 0; i < MAX_LEN; i++) { message[i] ^= key[i % len]; } } void decrypt(char *message, char *key) { encrypt(message, key); // 加密和解密使用同样的算法 } int main() { char message[MAX_LEN + 1]; printf("请输入要加密的报文(最多%d个字符):", MAX_LEN); fgets(message, MAX_LEN + 1, stdin); encrypt(message, KEY); printf("加密后的报文为:%s\n", message); decrypt(message, KEY); printf("解密后的报文为:%s\n", message); return 0; } ``` 示例输出: ``` 请输入要加密的报文(最多80个字符):Hello, world! 加密后的报文为:&kyyw,k|}y1 解密后的报文为:Hello, world! ``` 代码说明: 1. 定义了常量`MAX_LEN`为报文的最大长度,以及常量`KEY`为报文密码。 2. 实现了`encrypt`和`decrypt`两个函数,分别用于加密和解密报文。加密和解密使用了同样的算法,即对报文的每个字符依次进行异或运算,每次运算的密钥为密码的对应字符。如果密码长度小于报文长度,密码会被循环使用。 3. 在`main`函数中,读入要加密的报文,调用`encrypt`函数进行加密,输出加密后的报文。然后再调用`decrypt`函数进行解密,输出解密后的报文。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值