c - 字节异或的一些问题
我必须在 2 字节缓冲区上进行一些二进制异或。一个是编码密钥,另一个是编码值。
目前我的代码如下所示:
BYTE key[]={"somekey"}
BYTE value[]={"somevalue"};
for(i= 0; i < vallLength; i++)
{
valBuf[i] = value[i] ^ key[i % keyLength];
}
这对我不起作用。我做错了什么?
I have to make some binary xor on 2 byte buffers. one is an encoding key, the other the encoded value.
at the moment my code looks like this:
BYTE key[]={"somekey"}
BYTE value[]={"somevalue"};
for(i= 0; i < vallLength; i++)
{
valBuf[i] = value[i] ^ key[i % keyLength];
}
this does not work for me. what am i doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
好吧,这很糟糕,但我想编写一些简单的代码来进行更改。
无论如何,这个问题注定要结束,所以将其发布在这里不会造成太大伤害。
Alright, this is terrible, but I felt like writing some easy code for a change.
This question's destined for closure anyway, so it can't hurt too much to post it here.
数组“key”和“value”的长度相同吗?我不确定您正在寻找的结果,但您可能只想循环较短的长度,然后将较长的数组值填充到 ^ 答案。
Are the arrays "key" and "value" the same length? I'm not sure of the result you are looking for, but you might want to ONLY loop over the shorter length, then pad the longer array values to the ^ answer.
这可能是因为“i % keyLength”在循环的第一次运行中未定义,因为 i=0
It could be because "i % keyLength" is undefined for the first run of your loop as i=0