我使用加密(blowfish symmetric)来发送数据包。从安全的角度来看,在数据包开头有一个标题(也用数据包的其余部分加密),我可以用它来验证数据包是否有效,这是一个坏主意吗?
伪代码示例:
byte[] verificationHeader = [1,2,3,4,5];
receive(packet);
unencrypt(packet);
if (packet.getData().beginswith(verificationHeader)) {
// assume packet is good, try to do something with it
} else {
// drop packet
}
我想验证它,因为任何其他应用程序都可以在我的群组中进行广播,而且我不想与其他内容混淆。
它可能有助于黑客解密我的数据包吗?
如果这是一个坏主意,那么你可以建议一个替代方案吗?
答案 0 :(得分:1)
至少在理论上,这是一个非常糟糕的主意 - 它让某人对一个已知的“目标”进行蛮力攻击,所以当他/如果他们得到正确的密钥就知道它(并且很快就会知道)。 / p>
至少从安全性的角度来看,将该部分留在明文中要好得多。它也可能更实用 - 如果它不会有用,它可以帮助你解密。
答案 1 :(得分:0)
我不确定它是不是坏主意,但是如果你决定那么也许你可以发送一个随机数,然后是随机数或者带有标题。然后在另一边你或那个随机号码再次。然后你不会发送同样的东西很多次,但它都被加密,所以它不是可以破解的。我认为我的数学是正确的,但无论如何这个想法仍然存在。
ie
value = random | header;
send (random, value);
header = random | value;