ここでは、パスワードに適用される手法は適用できないことに注意してください。ソルト化およびハッシュ化されたパスワードを保存することはできますが (そうすることの価値については議論の余地があります)、電話番号では機能しません。
誰かがあなたのサーバーを乗っ取った場合、彼らはサーバーができることなら何でもできます。これには電話番号の回復が含まれる必要がありますが、適切にハッシュされている場合はパスワードの回復は含まれません。したがって、電話番号は、機密データを保護する特定のケースにすぎません。
電話番号が本当にアプリ内の唯一の機密データである場合は、テキストを送信するアプリの部分を壁で囲み、電話番号を非対称に暗号化することを検討できます。別のプロセス (または別のマシン) で、電話番号を復号化するキーを持つアプリを実行します。このアプリのインターフェイスには、暗号化された no と送信するメッセージを取得する 1 つの関数が含まれている可能性があります。このアプリをシンプルに保ち、鼻水をテストして監査します。それを外の世界から隠すか、認証を使用してリクエストが本当にメイン アプリからのものであることを証明するか、またはその両方を行います。
アプリのデータベースも主要部分も電話番号を解読することはできませんが (たとえば、それらを検索することはできません)、データベースに追加するために暗号化することはできます。
一般的な手法は「権限分離」と呼ばれるもので、上記はほんの一例です。
通常、電話番号は、暗号化の前にランダム データでパディングする必要があることに注意してください (ハッシュ化されたパスワードのソルティングなど)。そうしないと、秘密鍵を知らなくても、「暗号化された電話番号 X ですか?」という質問に答えることができます。スパマーがあなたの配布リストを盗むという視点からすれば、それは問題ではないかもしれませんが、ブルート フォース攻撃が可能になることを意味するため、あなたの電話番号が安全に保管されていると主張する視点からは問題です。電話番号、そして特定のユーザーのためにそれを大幅に絞り込むことが可能かもしれません.
申し訳ありませんが、これはあなたの質問に直接答えるものではありません: 特権の分離を実装するのに役立つ PHP フレームワークがあるかどうかはわかりません。
[編集して追加: 実際、「特権アプリをシンプルに保つ」という見出しの下では、フレームワークをまったく使用したくない場合があります。それは、フレームワークの作成者がはるかに大量の (しかしより広く使用されている) コードにバグを残すよりも、実際に必要な少量のコードにバグを残す可能性が高いと考えるか、または低いと考えるかによって異なります。書きました。しかし、それは非常に単純化しすぎです。]