{"id":40101,"date":"2026-04-02T09:06:10","date_gmt":"2026-04-02T07:06:10","guid":{"rendered":"https:\/\/www.graviton.at\/letterswaplibrary\/private-set-intersection-how-do-you-do-it\/"},"modified":"2026-04-02T09:06:10","modified_gmt":"2026-04-02T07:06:10","slug":"private-set-intersection-how-do-you-do-it","status":"publish","type":"post","link":"https:\/\/www.graviton.at\/letterswaplibrary\/private-set-intersection-how-do-you-do-it\/","title":{"rendered":"Private Set Intersection, How Do You Do It?"},"content":{"rendered":"<p><!-- SC_OFF --><\/p>\n<div class=\"md\">\n<p>I work with a company that sells data. As an example, let\u2019s say we are selling email addresses. A frequent request we\u2019ll get is, \u201cWe\u2019ll we already have a lot of emails, we only want to purchase ones you have that we don\u2019t\u201d.<\/p>\n<p>We need a way that we can figure out what data we have that they don\u2019t, without us giving them all our data or them giving us all their data.<\/p>\n<p>This is a classic case of private set intersection but I cannot find an easy to use solution that isn\u2019t insanely expensive.<\/p>\n<p>Usually we\u2019re dealing with small counts, like 30k-100k. We usually just have to resort to the company agreeing to send us hashed versions of their data and hope we don\u2019t brute force it. This is obviously unsafe. What do you guys do?<\/p>\n<\/div>\n<p><!-- SC_ON -->   submitted by   <a href=\"https:\/\/www.reddit.com\/user\/EducationalTackle819\"> \/u\/EducationalTackle819 <\/a> <br \/> <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1sa9s5l\/private_set_intersection_how_do_you_do_it\/\">[link]<\/a><\/span>   <span><a href=\"https:\/\/www.reddit.com\/r\/datasets\/comments\/1sa9s5l\/private_set_intersection_how_do_you_do_it\/\">[comments]<\/a><\/span><\/p><div class='watch-action'><div class='watch-position align-right'><div class='action-like'><a class='lbg-style1 like-40101 jlk' href='javascript:void(0)' data-task='like' data-post_id='40101' data-nonce='65e0e39b87' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.graviton.at\/letterswaplibrary\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-40101 lc'>0<\/span><\/a><\/div><\/div> <div class='status-40101 status align-right'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>I work with a company that sells data. As an example, let\u2019s say we are selling email&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[85],"tags":[],"class_list":["post-40101","post","type-post","status-publish","format-standard","hentry","category-datatards","wpcat-85-id"],"_links":{"self":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/40101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/comments?post=40101"}],"version-history":[{"count":0,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/posts\/40101\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/media?parent=40101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/categories?post=40101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.graviton.at\/letterswaplibrary\/wp-json\/wp\/v2\/tags?post=40101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}