2013-05-07 115 views
-1

以下方案:
我想在公共场所(例如火车站)创建一个wifi热点。因此,我想编写一个移动应用程序(iOS and/or Android),它用作门户页面。因为我会通过我的wifi热点提供互联网访问,所以我需要确保那些想要登录的人确认他们的身份(责任)。首先,我想我可以做一些类似Facebook登录的东西,但我认为这还不够,因为人们可以创建假帐户。
然后我明白了我可以通过他们的智能手机访问他们的电话号码。 我GOOGLE了很多,并得出结论,这是非常艰难的两个平台。 iOS方法似乎不推荐使用,应用程序也不会使用该版本的应用程序商店。 Android可以从SIM卡上读取电话号码,但并非所有提供商都将该号码存储在SIM卡上。通过电话号码或其他唯一ID(iOS/Android)验证用户身份

问题
是否有可能得到的电话号码?或者有没有其他方法可以唯一识别WiFi网络中的某个人?
当然,我不想做任何的是没有要求的用户权限等...
问候和感谢提前 彼得

+1

每个用户或每个设备是否唯一?你排除了创建帐户的用户吗? – 2013-05-07 13:15:25

回答

0

选择的MAC地址是一个不错的选择,它是不是最安全的,但它更容易做到。

IMEI并不总是提供,并且SERIAL不是uniq。

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

+0

嗯,这似乎是一个聪明的想法,但与MAC地址我只能识别设备不是用户,我是对吗?那么这就够了吗? – 2013-05-07 13:45:27

0

使用IMEI号

的Android是否提供的功能/方法在Android清单

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
// get IMEI 
String imei = tm.getDeviceId(); 
访问设备的IMEI号码

第一盘<uses-permission android:name="android.permission.READ_PHONE_STATE" />

希望它有助于

非CDMA或GSM设备,如平板

使用

import android.provider.Settings.Secure; 

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

这将产生对device..how一个唯一的代码以往任何时候都将改变,当用户重启设备即出厂重置..它适用于os> 2.2(froyo)的设备

+0

没有IMEI号码的平板电脑怎么样? – cremy 2013-05-07 13:39:05

+0

http://android-developers.blogspot.in/2011/03/identifying-app-installations.html Android ID是什么使设备独特..但它适用于os> 2.2(froyo)的设备, – 2013-05-07 14:27:19

0

这实际上取决于您试图识别的用户。这看起来可能是一个奇怪的回应,但通常,我们试图确定两套而不是一套凭证元素。

首先,我们不想识别设备本身 - 这是我们期望看到的设备,我们可以相信这个设备没有被篡改。其次,我们通常想知道此时该设备的用户是否是我们期望使用此设备的用户。 (如果我拿你的手机,没有第二步,我就成了你。)

这就是为什么我们有类似802.1x的东西。它让我验证网络的用户,而不仅仅是设备。对于你的情况,考虑类似于:

对于设备验证,组合hte MAC地址和IMEI。通过用户的一些数据将这些数据转换成独特的散列。例如。

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

现在,我们可以肯定的设备和用户是正确的,如果你需要,你可以走一步,并使用该散列一个密钥来加密您的应用中的用户验证步骤。即使用户是正确的,如果他们在错误的设备上,他们的密钥也不会解密。