在Android中,我可以使用哪些选项对web服务器的HTTP POST请求进行加密?

在Android中,我可以使用哪些选项对web服务器的HTTP POST请求进行加密?,android,encryption,Android,Encryption,我有一个安卓应用程序,我从安卓设备向我的网络服务器发送一些信息,这些信息必须通过网络进行保护,直到到达服务器 我曾考虑使用HTTP SSL请求,但可能也有类似的免费和安全选项 那么,通过网络加密HTTP POST请求的可用选项是什么 提前感谢。SSL肯定是最好的选择,如果您可以在有问题的设备上安装证书,或者提示用户这样做,那么SSL是免费的。也就是说,如果用户被提示安装一些奇怪的证书,这可能是一个危险信号。您可以使用对称加密方案(如AES)对有效负载进行加密,但问题在于密钥交换(如何将密钥获取到

我有一个安卓应用程序,我从安卓设备向我的网络服务器发送一些信息,这些信息必须通过网络进行保护,直到到达服务器

我曾考虑使用HTTP SSL请求,但可能也有类似的免费和安全选项

那么,通过网络加密HTTP POST请求的可用选项是什么


提前感谢。

SSL肯定是最好的选择,如果您可以在有问题的设备上安装证书,或者提示用户这样做,那么SSL是免费的。也就是说,如果用户被提示安装一些奇怪的证书,这可能是一个危险信号。您可以使用对称加密方案(如
AES
)对有效负载进行加密,但问题在于密钥交换(如何将密钥获取到设备上),或者,如果您使用编码到应用程序中的密钥,任何人都可以从二进制文件访问密钥

或者,您可以使用服务器公钥(硬编码到应用程序中)使用非对称加密,但您还需要提供数据完整性检查等


总之,只需使用HTTPS。99.9999999%的可能性是,无论你写什么,都会比公认的行业标准更不安全。

所有其他选项都可以概括为创建自定义、专有且可能非常糟糕的SSL/TLS/HTTPS版本。非常感谢你,Chris。我真的很倾向于SSL,顺便问一下,你知道我可以使用任何免费的SSL来实现这一点吗?@Grego你可以使用OpenSSL()创建自己的SSL证书。通常,最受信任的CA需要至少一点钱来进行证书签名。