从列转置中删除填充c#

时间:2014-11-20 20:06:47

标签: c# encryption cryptography padding multidimensional-array

我做了一个列换位(参见下面的第一部分)并且我正在使用字节来换位图像(用于加密目的)因为我使用的是2D数组我不得不使用填充来填充剩余的数组的内容我正在努力寻找一种有效的方法来在不扭曲原始数据的情况下撤消过程中删除填充 - 请有人提出任何建议或指导或替代方案吗?

            for (int i = 0; i < colsize; i++)
            {

                for (int j = 0; j < rowsize; j++)
                {

                    if (itt < data.Length)
                    {
                        matrix[i, j] = data[itt];
                    }
                    else
                    {
                        //padding array element with *
                    }

                    itt++;
                }
            }

任何帮助都会得到很大的帮助

1 个答案:

答案 0 :(得分:1)

您可以做的是模拟阵列中所谓的PKCS#7填充。这意味着您存储了行的最后一个元素中剩余的数据量。您只需检索最后一个元素的值,即确定未使用的数据量。在PKCS#7中,此填充值也会在其他未使用的字节中重复,但这并非严格要求。

如果您没有剩余字节,则会出现问题,您无法确定该值是否包含不应使用的值的数量,或者它是否包含实际值。就像在PKCS#7填充中一样,解决方案可能是添加一行。

显然,在外部存储填充的长度或数量也是一种选择。