Java 保护android设备和服务器之间发送的数据

Java 保护android设备和服务器之间发送的数据,java,android,encryption,Java,Android,Encryption,我正在尝试构建自己的自定义LVL替代方案,并且我必须进行一些服务器端验证 当数据通过互联网传输时,如果没有适当的安全措施,就有可能截获数据。尽管HTTPS提供了比标准保护更多的安全性,但这可能还不够 我正在从互联网上读取一个.txt文件,其中的数据被下载到手机上。是否可以在android设备上使用加密来隐藏其连接的网址和检索的数据?我已经在使用HTTPS了。连接代码: URL url = new URL(protocol + website + dir + file); BufferedRead

我正在尝试构建自己的自定义LVL替代方案,并且我必须进行一些服务器端验证

当数据通过互联网传输时,如果没有适当的安全措施,就有可能截获数据。尽管HTTPS提供了比标准保护更多的安全性,但这可能还不够

我正在从互联网上读取一个
.txt
文件,其中的数据被下载到手机上。是否可以在android设备上使用加密来隐藏其连接的网址和检索的数据?我已经在使用HTTPS了。连接代码:

URL url = new URL(protocol + website + dir + file);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
编辑


除了保护连接,用密钥加密数据的最佳方法是什么?

是。完全地最简单的方法是使用HTTPS服务器提供内容(.txt文件)。(HTTP-S,其中S表示安全)。

正如巴勃罗所说,使用HTTPS是安全地将信息从一方传输到另一方的正确方式。HTTPS(HTTP+SSL/TLS)正是为此而设计的。事实上,HTTPS所做的是使用在终端之间协商的会话密钥加密数据,该密钥仅对当前会话(甚至部分会话)有效,因此非常安全


您可以使用某种算法对文档进行加密,但这会增加一些您不需要的开销。

没有其他选择吗?在设备上本地?是否要在本地对其进行加密?如果可以提高安全性,则可以。为了屏蔽输入和输出数据,使其难以(er)查看其连接到的站点和正在下载的数据。在我的问题中添加了连接代码我还没有真正深入了解HTTPS的实际功能;在不解密会话的情况下,是否可以查看会话连接到的地址?您的意思是隐藏您手机上的应用程序连接到的名称或ip地址以及端口?这些信息永远不会被隐藏,因为中间设备,如代理、路由器和其他服务器,必须知道将数据发送到哪里。HTTPS可以加密您的数据,这仍然是安全的,但不能使用路由信息来加密任何内容。“您可以使用某种算法来加密文档,…”我一直在研究这个问题。问题在于找到一种加密算法(如AES、Base64、Rot13),该算法可以在API 14+上的Android上使用密钥进行处理。我建议不要使用Base64,因为它不是真正的加密:使用HTTPS,您的数据使用非常强大的可逆共享密钥算法进行加密;该算法在连接开始时在应用程序和服务器之间进行协商,并使用共享密钥进行协商。如果您自己编写数据,则必须使用一个公用密钥,该密钥必须由您的应用程序和服务器知道。如果您有多个应用程序实例,该怎么办?每个实例都有自己的密钥(服务器必须知道每个密钥),还是所有实例都使用相同的硬代码密钥?两者都是不切实际的,后者是不安全的。如果您必须更改密钥,会发生什么情况?实际上,我正计划使用一个可以在应用程序内部找到的密钥;它将在任何地方都可用,但没有编码到代码中。我发现了一些AES示例,我将对其进行一些测试。