Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加密/安全通信Android应用程序<-&燃气轮机;RESTWebService_Java_Android_Rest_Encryption - Fatal编程技术网

Java 加密/安全通信Android应用程序<-&燃气轮机;RESTWebService

Java 加密/安全通信Android应用程序<-&燃气轮机;RESTWebService,java,android,rest,encryption,Java,Android,Rest,Encryption,我想用Tapestry5和这个插件为我的android应用程序创建一个后端。 该应用程序将通过调用REST方法与服务器进行通信,这既适用于注册用户(我想这很容易保护),也适用于未注册用户。 当然,我不希望人们仅仅从浏览器中调用Web服务 我如何确保只有我的应用程序才能调用此后端?检查用户UA可以帮助…我可以想出两种方法: 使用SSL保护连接。SSL可以执行握手检查凭据。 要对用户进行身份验证,可以使用证书或PSK 或者,您可以简单地创建数据的散列(SHA或MD5)并包含一个密钥。这被称为hmac

我想用Tapestry5和这个插件为我的android应用程序创建一个后端。 该应用程序将通过调用REST方法与服务器进行通信,这既适用于注册用户(我想这很容易保护),也适用于未注册用户。 当然,我不希望人们仅仅从浏览器中调用Web服务


我如何确保只有我的应用程序才能调用此后端?

检查用户UA可以帮助…

我可以想出两种方法:

使用SSL保护连接。SSL可以执行握手检查凭据。 要对用户进行身份验证,可以使用证书或PSK


或者,您可以简单地创建数据的散列(SHA或MD5)并包含一个密钥。这被称为hmac。逆向工程师可能会得到关键,因为您必须在代码中硬编码。

这不是很容易欺骗吗?谢谢您的想法!使用这两种方法,人们将无法从浏览器或自己的android代码中重新创建对Web服务的调用,因为他们不知道我从应用程序发送的(加密)密钥?确切地说。但由于它是硬编码的,所以可以通过逆向工程进行检索。密钥永远不会发送,因为它只用于创建哈希