Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
所以我在两台不同的计算机之间传输 XOR 加密但是我遇到了一个大问题,当它传输一个 ASCII 低于 30 的字符时,它无法传输,因为下面的这些字符与流控制混淆。我尝试将字符加 30 以尝试避免这种情况,但仍然失败。
基本上,当发送低于 ASCII 30 的字符时,传输将完全停止。
代码非常简单,如下 -
mov al, character xor al, password mov character, al
基本上,变量字符和密码的特定组合会导致此问题。
32以下的字符通常用作控制码,不透明传输。我猜你不使用8位透明通道。
我建议使用像 TCP 这样的 8 位透明通道进行传输。只是打字是行不通的。如果这不是一个选项,请使用 base-64 编码之类的东西,它将 3 个字节映射为 4 个可打印且小于 128 的字符。当然,任何其他编码也可以。
顺便说一句:您的“加密”非常弱到不存在的程度。考虑使用易于理解的算法,如 AES 或任何其他算法。有很好的和快速的库可用。