我正在编写一个简单的应用程序(在React Native中,但不应该有所作为)用户可以注册,然后查看已注册的手机联系人列表。它基本上连接了彼此保存在手机中的用户,类似于Whatsapp。
我的问题是,我该怎么做?
我看到两个选项:
在寻找"朋友"时,将所有用户的联系人发送到服务器,并将其与数据库中的注册用户列表进行比较(其中没有?我觉得非常正确,我的意思是在没有这些联系人的情况下挖掘所有用户和联系人吗?),或者
将所有用户从数据库下载到手机并在那里进行比较(这显然是不可能的)
我有没有想到的 第三 方式?
[编辑]:谢谢你抽出时间回答,但到目前为止它并没有那么有用。我的意思是,显然我要加密这些东西:D
我想知道是否有第三种方法来构建这个我没有想过的方法。谢谢!
答案 0 :(得分:1)
首先,在这两种情况下(1& 2),您都必须要求您的用户获得访问联系簿的权限。
作为与第一个结合使用的第三个选项,如果您的用户的隐私问题(可能应该),您可以在电话号码上使用MD5或SHA1(任何哈希算法,您将其命名)algos并使用而不是真正的电话号码。它们对于每个唯一的电话号码都是唯一的,并且无法解码回电话号码本身。
The first thing I googled.(Swift示例)但是您必须在文件中包含一个CommonCrypto。
我确信如果需要的话,你也可以找到这种反应原生的算法。
答案 1 :(得分:1)
除了前一个答案之外,最好使用SHA-256(在Java中,您可以使用MessageDigest.getInstance("SHA-256").digest()
包中的java.security
来散列来自地址簿中的已清理电话号码(如果在React Native中可用) 。
答案 2 :(得分:0)
我已经使用“ react-native-contacts”完成了类似的操作,您可以在此处找到更多相关信息:https://github.com/rt2zz/react-native-contacts
一旦您集成了react-native-contacts,您将能够读取存储在用户设备上的所有联系人,然后可以尝试将其发布到您的后端。匹配特定用户联系人的功能。
如T. Pasichnyk和Norbert所述,您应该采取必要的步骤来保护用户数据