java - Android 唯一 key

标签 java android sockets debian tcp

我的 Raspberry Pi 上有一个带有 Rasbian 的服务器。为了控制它,我制作了一个 Java TCP/IP 客户端/服务器。 java服务器端全天运行,我可以通过客户端程序连接它。基本上,服务器等待一些代码,并执行绑定(bind)到该代码的命令。 在我的电脑和 Android 智能手机上,一切都完美运行。 所以我添加了一个验证功能。我有一个白名单,服务器检查是否允许客户端 IP(通过 socket.getRemoteSocketAddress() 获得)连接并向我的服务器发送命令。 我添加了我的计算机 IP(本地 IP,因为我的计算机与我的 Raspberry 在同一网络上),并且我也添加了我的智能手机 IP。

我的问题是:我的智能手机拥有动态 IP,而不是我的 PC。因此,当我将其 IP 添加到我的白名单时,它运行良好。但过了一段时间,我的智能手机 IP 发生了变化,因为它是动态的,所以我的智能手机不再被允许。

所以我正在我的智能手机上寻找一个唯一的 key ,我可以用它来识别我的智能手机,并且只能识别我的智能手机。

此外,我的计算机上需要有一个类似的 key ,才能以相同的方式识别我的计算机。

你知道这样的 key 吗?

最佳答案

我会使用 TLS 而不是白名单 IP。您可以生成在服务器上使用的自签名证书,然后在手机、计算机或任何设备上手动安装该证书。只有具有证书的设备才能连接到您的服务器。

关于java - Android 唯一 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36435665/

相关文章:

java - Web服务与java android

java - 如何在应用 flatMap() 后保留列表的顺序?

java - 远程访问ejabberd

java - Kitkat 错误膨胀类 android.support.design.widget.NavigationView

android - 切换到 Android Studio 2.0 后使用 Dagger 2 时出现 NoClassDefFoundError

python - Python原始套接字更改符号

java套接字如何从两个不同的线程发送数据

java - 给定数百万个数字流,如何近似第 90 个百分位数

java - java Socket编程中从服务器发送文件列表到客户端 - PrintWriter无法发送?

android - 使用 Xamarin Forms 共享图像