我在评估AES时发现一个问题:AES加密要求密文都是16B,不足以空格填充。我觉得文本以0填充比较合理。但是二进制码流如何处理?
如果要处理Padding字符,意味着需要ESC字符,同时ESC本身需要再ESC。
如果没有Padding,那么必须等待16B完整后才能够传输。
前者意味着根本不是透传的,而是需要高层适配的。后者意味着某个报文是无法即时发出的。
我在评估AES时发现一个问题:AES加密要求密文都是16B,不足以空格填充。我觉得文本以0填充比较合理。但是二进制码流如何处理?
如果要处理Padding字符,意味着需要ESC字符,同时ESC本身需要再ESC。
如果没有Padding,那么必须等待16B完整后才能够传输。
前者意味着根本不是透传的,而是需要高层适配的。后者意味着某个报文是无法即时发出的。
采用PKCS#5/PKCS#7实现二进制数据padding。
即如果填充一个字节,结尾填充0x01;如果填充两个字节,则是0x0202;三个字节0x030303...以此类推。