我正在尝试从一维数组中创建一个二维数组,以在Rijndael或AES加密过程中生成数据状态。我一直在尝试使用以下代码;
public byte[,] MakeAState(byte[] block){
byte[,] State;
foreach (byte i in block)
for (int row = 0; row < 4; row++)
for (int column = 0; column < 4; column++)
State[column, row] = i;
return State;
}
我打算让结果变成这样
//Original Sequence
[99 111 98 97 112 97 115 115 99 111 98 97 112 97 115 115]
//Desired Sequence
[99 112 99 112]
[111 97 111 97]
[98 115 98 115]
[97 115 97 115]
结果总是出现似乎使用Block元素作为State数组的索引,导致出现“越界”错误消息。有什么办法可以解决这个问题吗?