使い捨てのベータキーをデータベースにプレーンテキストで保存しても問題ありませんか?約2Mのキーを事前に生成して保存します。キーは渡されるので、ランダムにサインアップするのではなく、サインアップできます。
唯一の悪い点は、誰かがすべてのベータキーをdbダンプで盗むことができたとしても、それが発生した場合です。一時的な保護は、bcryptを使用してそれらをハッシュし、ユーザーのハッシュされた入力をキーハッシュ(パスワードなど)と比較することですが、2Mのキーを事前に生成してすべてハッシュするのは遅すぎます。
あなたの質問では、潜在的な脅威を特定しました。この脅威が本当であり、それが悪用された場合に運用に十分な悪影響を与えると思われる場合は、質問で示唆するように追加の対策を講じる必要があります。
この場合のキーが公開したくない一意の識別子であると言っている場合は、必要に応じてハッシュと暗号化を使用する必要があります。キーを格納する必要があり、同じDBを使用してそれらを割り当てる必要がある場合、配布するためにキーを逆にする方法がないため、ハッシュすることはできません。それらを暗号化する必要があります。
事前生成の利点は、それらを危険にさらすリスクとその場でキーを作成するコストを上回りますか?同様のことをしているように見えるので、オンデマンドでそれらを作成し、電子メール検証トークンのソリューションとそれらがどのように管理されるかを確認する方が理にかなっています。