1

所以我在两台不同的计算机之间传输 XOR 加密但是我遇到了一个大问题,当它传输一个 ASCII 低于 30 的字符时,它无法传输,因为下面的这些字符与流控制混淆。我尝试将字符加 30 以尝试避免这种情况,但仍然失败。

基本上,当发送低于 ASCII 30 的字符时,传输将完全停止。

代码非常简单,如下 -

    mov al, character
    xor al, password
    mov character, al

基本上,变量字符和密码的特定组合会导致此问题。

4

1 回答 1

0

32以下的字符通常用作控制码,不透明传输。我猜你不使用8位透明通道。

我建议使用像 TCP 这样的 8 位透明通道进行传输。只是打字是行不通的。如果这不是一个选项,请使用 base-64 编码之类的东西,它将 3 个字节映射为 4 个可打印且小于 128 的字符。当然,任何其他编码也可以。

顺便说一句:您的“加密”非常弱到不存在的程度。考虑使用易于理解的算法,如 AES 或任何其他算法。有很好的和快速的库可用。

于 2012-11-22T21:36:14.640 回答