某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,请编写一个函数,传入原文,输出密文
function fn() {
var res = ""; //用来保存明文传输的数据
var pw = ""; //用来保存加密后的数据
for (var i = 0; i < 4; i++) {
var num = Math.floor(Math.random() * 10);
console.log(num);
res += num; //未加密的每一个数字
var sum = 0; //清空sum的值用来重新计算
sum = Math.abs((sum - "" + num + 5) % 10); //每一位加密后未交换的值
pw += sum; //所有加密后未交换的值
}
console.log(res); //输入原文
pw = pw.split(""); //把pw转换成数组
//定义一个变量用来交换
console.log(pw);
//第一位和第四位交换
var temp = pw[0];
pw[0] = pw[3];
pw[3] = temp;
//第二位和第三位交换
temp = pw[1];
pw[1] = pw[2];
pw[2] = temp;
pw = pw.join(""); //再把交换后的数组pw转换成字符串
console.log(pw);
}
console.log(fn());