AES输出,它是否小于输入?

mrb*_*lah 1 c# encryption

我想加密一个字符串并将其嵌入到URL中,所以我想确保加密的输出不大于输入.

AES是否可行?

Jon*_*eet 14

创建任何总是创建比输入更小的输出的算法是不可能的,但是可以将任何输出反转回输入.如果你允许"不大于输入"那么基本上你只是在谈论同构算法,它们总是与输入相同.这是由于鸽子原理.

除此之外,加密通常还有一点填充(例如"最接近的8个字节,向上舍入" - 在AES中,即16个字节).哦,最重要的是你有文本和二进制之间的转换问题.加密算法通常以二进制方式工作,但URL以文本形式存在.即使您采用ASCII,也可能最终得到的加密二进制值不是ASCII.在文本中表示任意二进制数据的最简单方法是使用base64.还有其他替代方案非常繁琐,但一般的"将文本转换为二进制,加密,将二进制转换为文本"模式是最简单的.