| CPC G06F 3/0622 (2013.01) [G06F 3/0655 (2013.01); G06F 3/0679 (2013.01)] | 20 Claims |

|
1. A system comprising:
one or more processors; and
a memory in communication with the one or more processors, and storing instructions that when executed by the one or more processors are configured to cause the system to:
receive user data comprising a plurality of user names associated with a plurality of users and a plurality of anonymized user identifiers;
receive user attribute data comprising a plurality of user attributes associated with one or more users of the plurality of users;
receive a first plurality of hash values uniquely identifying an association between each user attribute of the plurality of user attributes and one or more users of the plurality of users;
receive, from a first computing device, a first request for a listing of user names associated with a first user attribute;
receive, based on a first user identifier, a first secret key;
generate a second plurality of hash values, wherein each hash value of the second plurality of hash values is based on a combination of one of the plurality of anonymized user identifiers, one of the plurality of user attributes, and the first secret key;
determine a first subset of the first plurality of hash values that match the second plurality of hash values; and
transmit the listing of user names associated with the first user attribute to the first computing device.
|