0
我正在使用使用4字节密钥的加密算法。它的工作原理是这样使用整数密钥实现加密算法:如何在此过程中存储密钥
(pseudocode)
for i = 0 to size_of_data
data[i] ^= key[i % 4]
if (i % 4 == 0)
key *= 5
key += 2893
end
end
所以基本上,每次你到达关键的最后,您可以通过一些固定的量与下一组的字节,然后再继续繁衍的关键价值。
我的问题与我在解密数据时应如何存储密钥有关。我可以选择将它作为一个字节数组存储,这很容易迭代,但如果我必须对字节数组进行一些数学运算,它会变得有点复杂。另一方面,我可以将密钥存储为字节数组的4个字节的整数表示形式,然后执行相应的移位操作来异或正确的字节。这使得修改密钥变得很容易,因为我已经使用了一个整数。
什么是更好的方法来解决这个问题?两者都是有效的解决方案,但是当涉及字节操作时,可能会有更好的方法。
对不起,如果上面有问题,我的c有点生疏。基本上你可以通过移位一个整数并得到最低有效位来检索字节值。 –