I haven't read Brian's post though because I'm getting 503 errors atm.
Anywho, just going to engage in some half-assed napkin-math to explore the idea:
Card numbers: 6 digits for institution and 9 for the customer and 1 for checksum. Let's assume merely 20 big issuers "worth attacking". The possibility-space to search is then (20 * 9^10), or ~70 million.
Suppose that--by design--it takes 2 seconds to compute the hash. Covering the whole range would take ~4420 years. That's... not a very comforting margin.
Perhaps you could hash the credit-card along with the year-month in which the purchase occurred, but attackers probably aren't interested in >12 month old cards, so that's only a small 12x slowdown there.
Beyond that, most things display first four & last four, so you can probably assume they have that too.
Yes, I agree. Even two seconds of waiting for your search is a little on the high side, UI-wise.
> Beyond that, most things display first four & last four
My impression is that "only last four" is the most-common.
It might be a different story if the system required users to also enter in data like the exact customer first/last name.
http://www.wired.com/2015/11/samy-kamkar-10-dollar-tool-can-...
Either way, they did take PCI DSS seriously, and passed audits: dual control requirements for keys and all that. Still, accounting could print reports with many credit card numbers, although it was all logged and relatively well tracked.
I have not worked in a lot of big retailers though, but I have seen others that featured searching for a missing receipt by credit cards number, or refunds to the original CC way past the window where a processor can just reverse a charge. There's also online retailers, that definitely remember your credit card number. So I suspect there are plenty of retailers that at least have historically kept CC numbers, whether being PCI compliant or not is another matter entirely.