You could store the data in the SPIFFs.
You would not need an sd.
It should easily fit in the stack memory of esp. So I would not read it repeatedly from sd.
Ah. The subject of much computer science. Probably a simple linear search is fine. It's not like you're going to get 100s of RFID card scans per second. Faster (MUCH faster) algorithms require that the table be structured, or parsed ahead of time to produce some sort of index structure.
For instance simply ensuring that your array is arranged in increasing key size ("sorted") would enable a binary search that would reduce the number of comparisons needed to find a match from max 1000 to max ~10.