我正在尝试将用 C# 制作的应用程序移植到 Ruby,但我无法理解几个函数。
这是代码。
for (int pos = 0; pos < EncryptedData.Length; pos += AesKey.Length)
{
Array.Copy(incPKGFileKey, 0, PKGFileKeyConsec, pos, PKGFileKey.Length);
IncrementArray(ref incPKGFileKey, PKGFileKey.Length - 1);
}
private Boolean IncrementArray(ref byte[] sourceArray, int position)
{
if (sourceArray[position] == 0xFF)
{
if (position != 0)
{
if (IncrementArray(ref sourceArray, position - 1))
{
sourceArray[position] = 0x00;
return true;
}
else return false;
}
else return false;
}
else
{
sourceArray[position] += 0x01;
return true;
}
}
我知道数组和键的长度是 16。如果有人能解释 Array.Copy 和 IncrementArray 函数的工作原理,我将不胜感激。