import java.util.Scanner;
/**
* @author CT
* @create 2020-11-23-21:44
*/
public class AESSolution {
public static void main(String[] args) {
//跟C不一样的地方:略
Scanner scanner = new Scanner(System.in);
//定义一个4*4的二维数组arr
int[][] arr= new int[4][4];
//循环输入每一个元素,顺序为:01,02,03,04,11...
for(int i = 0;i< 4;i++){//4次,4行
for(int j = 0;j< 4;j++){//4次,4个
arr[i][j]= scanner.nextInt();
}
}
System.out.println("原数组");
printf(arr);
//调用移位方法
shiftRows(arr);
//调用打印输出方法
System.out.println("移位后的数组");
printf(arr);
}
//移位方法
static void shiftRows(int[][] arr){
//定义一个长度为4的一维数组st,st在这里是一个中间数组,防止数据丢失
int[] st = new int[4];
//换位置循环
//大循环四次,4行
for(int i=1;i<4;i++)
{
//把i行的数给st,4个
for(int j=0;j<4;j++)
{
st[j]=arr[i][(j+i)%4];
}
//把st的这一行新位置的数据给回arr,4个
for(int j=0;j<4;j++)
{
arr[i][j]=st[j];
}
}
}
//打印数组方法
static void printf(int[][] m){
//循环4*4次打印16个数字出来
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
System.out.print(m[i][j]+"\t");//输出[i][j]位置的数据,"\t"是制表符为了打印格式出来的
if(j%4==3)//每4个换一次行
System.out.println();//换行的代码,Java的
}
}
}
}
AES加密算法
于 2020-11-24 21:02:13 首次发布