该代码块有待优化提升,后续将在文末进行展示,望大佬有更好意见欢迎评论或私信(ง •_•)ง
需求:
Admin_Log
– 某系统的数字密码(大于0).比如1983,采用加密方式进行传输。
规则如下:
– 每位数加上5
– 再对10求余
– 最后将所有数字反转
– 得到新的一串数字
加密 – 1 – 将每一位数字都添加到数组中

点击查看完整代码图片:加密 – 1 – 将每一位数字都添加到数组图片展示
public class encryption2 {
public static void main(String[] args) {
/*
需求:
- 把整数上的每一位都添加到数组当中
- 反向推导
*/
// 1. 计算出数组的长度
int number = 1983;
// 定义一个临时变量记录number的值,为了第三步的时候能够再次使用
int temp = number;
// 定义一个变量进行统计
int count = 0;
while (number != 0) {
// 每一次循环就去掉右边的一个数字
number = number / 10;
count++;
}
// System.out.println(count);
// 2. 定义数组
// 动态初始化 [ 不知道长度是多少 ]
int[] arr = new int[count];
// 3. 把整数上的每一位都添加到数组当中
int index = arr.length - 1;
while (temp != 0) { // 12345
// 获取temp里的每一位数字
int ge = temp % 10;
// 再去掉右边的数字
temp = temp / 10;
// 把当前获取到的个位添加到数组当中
arr[index] = ge;
index--;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
加密 – 2 – 对数组内数据进行加密

点击查看完整代码图片:加密 – 2 – 将每一位数字都添加到数组图片展示
public class encryption {
public static void main(String[] args) {
/*
需求:
- 某系统的数字密码(大于0).比如1983,采用加密方式进行传输。
规则如下:
- 每位数加上5
- 再对10求余
- 最后将所有数字反转
- 得到新的一串数字
*/
// 1. 把整数里面的每一位数放到数组当中
int[] arr = {1, 9, 8, 3};
// 2. 加密
// 每一位数字加上5
for (int i = 0; i < arr.length; i++) {
arr[i] = arr[i] + 5;
}
// 再对10取余
for (int i = 0; i < arr.length; i++) {
arr[i] = arr[i] % 10;
}
// 将所有数字反转
for (int i = 0, j = arr.length - 1; i < j; i++, j--) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } // 8 3 4 6 --> 8346
// 3. 将数组里面的每一个数字进行拼接,变成加密之后的结果
// 定义最终变量
int number = 0;
for (int i = 0; i < arr.length; i++) {
// 将number进行 *10操作是为了简化操作
// 第一次:0*10+8=8
// 第二次:8*10+3=80+3=83
// 第三次:83*10+4=830+4=834
// 第四次:834*10+6=8340+3=8346
number = number * 10 + arr[i];
}
System.out.println(number);
}
}
解密

点击查看完整代码图片:解密图片展示
public class deciphering {
public static void main(String[] args) {
/*
需求:
- 某系统的数字密码(大于0).比如1983,次啊用加密方式进行传输。
规则如下:
- 每位数加上5
- 再对10求余
- 最后将所有数字反转
- 得到新的一串数字
按照以上规则进行解密:
- 比如1983加密之后变成8346,解密之后变成1983
*/
// 1. 定义数组记录解密之后的结果
int[] arr = {8, 3, 4, 6};
// 2. 反转
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 3. 由于加密是通过对10取余的方式进行获取的
// 所以在解密的时候就需要判断,0~4之间+10,5~9数字不变
for (int i = 0; i < arr.length; i++) { if (arr[i] >= 0 && arr[i] <= 4) {
arr[i] = arr[i] + 10;
}
}
// 4. 每一位减去5
for (int i = 0; i < arr.length; i++) {
arr[i] = arr[i] - 5;
}
// 5. 获取数组里面的每一位数字拼接成最终的结果
int number = 0;
for (int i = 0; i < arr.length; i++) {
number = number *10+arr[i];
}
System.out.println(number);
}
}



