我在应用程序中注册了手机号码,就像在whatsapp中注册一样。现在,如果我的联系人列表中的人未注册,我想在应用程序的联系人列表中显示邀请选项。
当前,我正在发送我的所有联系人以与php数据库匹配并返回每个联系人的状态。但是现在playstore拒绝了我的应用程序,因为它涉及通过API上传用户的私人数据。因此,如何在我的应用程序中实现它。还有其他选择吗?
答案 0 :(得分:1)
如果不需要,请勿将纯文本联系人信息发送到您的后端。 对于您的用例,您可以使用哈希联系信息而不是纯文本,从而允许您的后端检查哈希是否属于您的应用程序的现有用户,但是要从该哈希中找出原始信息非常困难。
如果您的注册过程类似于Whatsapp,我假设您使用电话号码作为用户的ID,在这种情况下,您需要遍历设备上所有具有电话号码的联系人,对每个联系人进行哈希处理,然后将哈希列表发送到您的后端。 然后,后端将检查每个哈希值是否等于现有的电话号码哈希值,并将结果返回给客户端以方便邀请。
下面是一个从字符串创建哈希的示例(在本例中为MD5),但是您可以选择许多库和选项:
public static String md5(String key) {
MessageDigest hash = null;
try {
hash = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
return null;
}
hash.update(key.getBytes());
byte[] digest = hash.digest();
StringBuilder builder = new StringBuilder();
for (int b : digest) {
builder.append(Integer.toHexString((b >> 4) & 0xf));
builder.append(Integer.toHexString((b >> 0) & 0xf));
}
return builder.toString();
}