MVC3 WebAPI のデータを暗号化および復号化する方法を見つけようとしています。状況は次のとおりです。ユーザー登録があり、ユーザーがプロジェクトを登録できるフィードバックアプリケーションを作成しています。プロジェクトはフィードバックの外部キーとして使用する必要があります (つまり、フィードバックは特定のプロジェクトに割り当てる必要があります)。問題は、プロジェクト ID (GUID になります) を暗号化し、サーバー側で復号化する方法です。MD5 + ソルトを使用する必要があります。塩は何を使えばいいですか?タイムスタンプかもしれませんが、このタイムスタンプをどのように渡す必要がありますか? うーん、どこから始めて何をすればいいのかわからない。どんな助けでも大歓迎です。注: API メソッドへのアクセスに認証は必要ありません。シークレット パラメーターを (キーとして) 渡す必要があります。
3 に答える
HTTPSだけが必要ですか?本文と HTTPS のパラメーター。なぜ車輪を再発明するのか?!
認証を使用して Web API メソッドを呼び出さない場合は、共有シークレット パスワードを使用してデータを暗号化できます。AES
使用できるデータを暗号化/復号化するために一般的に使用される対称鍵アルゴリズムです。これは、クライアントとサーバーが共通の秘密を共有する必要があることを前提としています。
MD5 はハッシュ (一方向) アルゴリズムです。これは暗号化アルゴリズムではありません。MD5 ハッシュの全体的な考え方は、元に戻すことができないということです。
私はオープン ソース プロジェクトを作成し、ここに文書化しました: Build a RESTful API。おそらく、これは正しい方向にあなたを始めるでしょう.
このソリューションでは、 API ID、API シークレット、および UNIX タイム スタンプのMD5ハッシュを使用し、HTTP ヘッダーで渡します。@Darin Dimitrovが述べたように、MD5 は一方向ハッシュですが、ハッシュとブルート フォース テクニックに関する知識があれば元に戻すことができます。AESなどのより良いオプションがありますが、これは簡単で、開始するのに適した方法です。実際、この認証方法は、Mashery の Authenticationで使用されているものと同じです。
RESTful API 参照を構築し、サポートする .NET EF データベースと共に Auth、メンバーシップ、およびAPI 使用状況測定を備えた API を作成するための本格的なスターター キットが含まれてい
サービスのテストに関しては、Curl を使用する代わりに、 RESTClientを使用してカスタム ヘッダーで HTTP 呼び出しを実行できます。