我需要在我的应用程序中加密和解密URL。
加密是绕过审查制度的必要条件。该应用程序目前使用的是RC4,但现在已不再适用,希望有更好的选择。
一个好的算法应具有以下特征:
答案 0 :(得分:0)
你提到RC4是一个流密码。正如你所说,这是不安全的。对URL使用流密码似乎很奇怪,但如果这是你想要的方式,我建议你看看Salsa20。谷歌正在使用它,并且没有专利。
如果您想使用分组密码,AES是安全性和速度之间的良好妥协之一。这是导致它赢得AES竞争的两个因素 - 足够的安全性和非常好的速度。除非你真的想要一个流密码,否则我实际上更喜欢Salsa20。
至于保持尺寸减小,上述两者都相当紧凑。例如,AES将需要16个字节的块,并将填充到16的偶数倍。因此,如果您必须保持在75个字符以下(假设您的编码中每个字节有1个字符),则必须保持在64个字符以下保持AES不再制作一个甚至80字节的块。
我建议先压缩网址,然后加密。您应该能够以这种方式将大量数据压缩到72个字节。只记得压缩,然后加密。如果先加密,则密码文本对压缩非常不敏感。
答案 1 :(得分:0)
我需要在我的应用程序中加密和解密URL。
我可以建议an alternative solution to URL parameter encryption吗?
加密是绕过审查制度的必要条件。该应用程序目前使用的是RC4,但现在已不再适用,希望有更好的选择。
使用HTTPS。 Avoid client-side Javascript cryptography in the browser。使用新的Let's Encrypt证书颁发机构,HTTPS比以前更自由,更轻松。