看了一上午没找出来的算法错误

kafly kafly 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

byte[] aArr = { 113, 76, 155, 186, 152, 127, 248, 183 };
byte[] bArr = new byte[8];

byte[] key = { 0, 0, 0, 0, 0, 0, 0, 0 };


for (int i = 0; i < 8; i++)
{
if (i > 0)
{
key[i % 8] = (byte)(key[i % 8] + aArr[i - 1] ^ (byte)i);
bArr[i] = (byte)(aArr[i] - aArr[i - 1] ^ key[i % 8]);
}
else
{
bArr[i] = (byte)(aArr[i] ^ key[0]);
}
}

Log(aArr, " aArr ");
Log(bArr, " bArr ");

key = new byte[8];

for (int i = 0; i < 8; i++)
{
if (i > 0)
{
key[i % 8] = (byte)((aArr[i] - bArr[i]) ^ aArr[i - 1]);
key[i % 8] = (byte)(key[i % 8] - aArr[i - 1] ^ (byte)i);
}
else
{
key[0] = (byte)(aArr[i] ^ bArr[i]);
}
}
Log(key, "CalcKey");



输出结果:
[ aArr ] 71 4C 9B BA 98 7F F8 B7
[ bArr ] 71 AB 01 87 60 7A 00 40
[CalcKey] 00 5E 88 0E CC 00 0E 90


为什么逆推出来的Key不是8个0呢~~ 100分求教

...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
kafly
C# 111,129 成员 642,539 内容