-1

以下场景:
我想在公共场所(例如火车站)创建一个wifi 热点。因此,我想编写一个iOS and/or Android作为门户页面的移动应用程序()。由于我将通过我的 wifi 热点提供互联网访问,我需要确保想要登录的人正确验证他们的身份(责任)。首先,我认为我可以做一些类似 facebook 登录的事情,但我想这还不够,因为人们可以创建假帐户。
然后我想到我可以通过他们的智能手机访问他们的电话号码。我用谷歌搜索了很多,得出的结论是在两个平台上都很难。iOS 方法似乎已被弃用,并且应用程序不会使用该版本进入应用程序商店。Android 可以从 sim 卡中读取电话号码,但并非所有提供商都将号码存储在 sim 卡上。

问题
有没有可能得到电话号码?或者有没有其他方法可以唯一地识别 wifi 网络中的人?
当然,我不想在不征得用户许可的情况下做任何事情……
提前问候和感谢彼得

4

4 回答 4

0

选择MAC地址是一个不错的选择,虽然不是最安全的,但是比较容易做到。

IMEI 并不总是提供,SERIAL 也不是唯一的。

但实际上,我不知道如何在 iOS 上做到这一点。

于 2013-05-07T13:12:12.233 回答
0

手机的MAC地址是什么?这应该足够独特,您可以从 android 和 iOS 轻松获得。

Android: http: //developer.android.com/reference/android/net/wifi/WifiInfo.html#getMacAddress%28%29 iOS:如何以编程方式获取 iphone 的 MAC 地址

于 2013-05-07T13:12:16.947 回答
0

使用 IMEI 号码

Android 是否提供访问设备 IMEI 号码的功能/方法

首先<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 在 android manifest 中设置

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
// get IMEI
String imei = tm.getDeviceId();

希望能帮助到你

对于平板电脑等非 CDMA 或 GS​​M 设备

利用

import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID); 

这将为设备生成一个唯一代码..但是当用户重置设备时它会改变,即出厂重置它..它适用于 os > 2.2(froyo) 的设备

于 2013-05-07T13:17:45.563 回答
0

这实际上取决于您要识别的人。这似乎是一个奇怪的反应,但通常,我们试图识别两组而不是一组凭证元素。

首先,我们想要识别设备本身——这是我们期望看到的设备吗?我们是否可以相信这个设备没有被篡改。其次,我们通常想知道当前使用该设备的用户是否是我们期望使用该设备的人,该设备现已经过验证。(如果我拿走你的手机,没有第二步,我就变成了你。)

这就是为什么我们有像 802.1x 这样的东西。它让我可以验证网络的用户,而不仅仅是设备。对于您的情况,请考虑以下内容:

对于设备验证,MAC 地址和 IMEI 的组合。将这些转换为包含来自用户的一些数据的唯一哈希。例如。

ID = SHA1(IMEI+MAC(Wifi)+用户密码)

现在我们非常确定设备和用户是正确的,如果需要,您可以更进一步,使用该哈希密钥来加密应用程序中的用户验证步骤。即使用户是正确的,如果他们在错误的设备上,他们的密钥也不会解密。

于 2013-05-17T20:45:56.723 回答