Java 简单的 密码加密 案例

密码加密 案例

需求:
首先将一组数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
然后,把加密后的结果在控制台打印出来。

分析:

  1. 数据小于8位数
  2. 数据倒序
  3. 每位数字都加上5,再用和除以10的余数代替该数字
  4. 最后将第一位和最后一位数字交换
  5. 打印输出

代码实现:

public class Encrypt{
	public static void main(String[] args){
		//定义小于8位的数据
		int number = 123456;
		//定义一个数组,,小于8位
		int[] arr = new int[8];
		//将定义的数据,进行倒序
		int index = 0;
		while(number > 0){
			//数据求余运算,将余数存储进数组中,第一次运算得到6
			arr[index] = number%10;
			index++;
			//数据除10
			number /= 10;
		}
		//每位数字都加上5,再用和除以10的余数代替该数字
		for(int x = 0;x<index;x++){
			arr[x] += 5;
			arr[x] %= 10;
		}
		//最后将第一位和最后一位数字交换
		int temp = arr[0];
		arr[0] = arr[index-1];
		arr[index-1] = temp;
		//输出数据
		for(int x = 0;x<index;x++){
			System.out.println(arr[x]);
		}
		
	}
}

运行结果:

在这里插入图片描述
可进行优化:

  • 通过键盘输入数据(小于八位)
  • 通过调用方法的方式
import java.util.Scanner;
public class Encrypt {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入密码(小于八位):");
        int number2 = sc.nextInt();
        String result = Encrypt(number2);
        System.out.println("加密后的密码:"+result);
    }
    //字符串类型
    public static String Encrypt(int number2){
        int []arr = new int[8];
        int index = 0;
        while (number2 > 0) {
            arr[index] = number2 % 10;
            index++;
            number2 /= 10;
        }
        for (int x = 0; x < index; x++) {
            arr[x] += 5;
            arr[x] %= 10;
        }
        int temp = arr[0];
        arr[0] = arr[index - 1];
        arr[index - 1] = temp;

        //把数组元素拼接成字符串返回
        //定义一个空字符串
        String s = "";
        for (int x = 0;x<index;x++){
            s += arr[x];
        }
        return s;
    }
}

运行结果:

在这里插入图片描述

发布了10 篇原创文章 · 获赞 0 · 访问量 327

猜你喜欢

转载自blog.csdn.net/weixin_44245615/article/details/104703510