2011-02-01 17 views
1

私のRails Appには、C1のクライアントのユーザー名を私に送るクライアント 'C1'があります。 IとC1は塩を共有します。 C1は共有塩の助けを借りて暗号化されたユーザ名を私に送ります。今私はそれを解読し、元のユーザー名を取得し、私のdBに格納する必要があります。どうしたらいいですか?暗号を解読する - RoR

助けてください。前もって感謝します。

+0

どのように暗号化されましたか? – bdonlan

+0

どの暗号化アルゴリズムを使用していますか?このタグは、ハッシュアルゴリズムであるSHA1を使用していることを示しているため、Digest :: SHA1.hexdigestメソッド –

+0

です。 – Rohit

答えて

1

SHA1(またはその他の)を使用している場合、解決策はサーバー側で同じハッシュを生成し、送信したものと比較することです。サーバー側で生成されたハッシュがクライアントによって送信されたハッシュと同じ場合は、正しいユーザー名である可能性があります。

ルビDigest :: SHA1.hexdigestでは、SHA1ハッシュを生成できます。

+0

しかし、@ピエール、私の質問で私のクライアントは私が知らない独自のユーザーが言及しているように。私のクライアントは暗号化されたユーザー名を私に送信します。私は復号化してdBで保存する必要があります。どうすればこれを達成できますか? – Rohit

+0

SHA1は元に戻すことはできません。別のアルゴリズムを使用する必要があります。共有キーまたは公開鍵/秘密鍵システム(PKI)を持つAESを使用することができます –

+0

@Rohit:ハッシュされたバージョンをサーバー側に保存する必要があり、認証が発生するとユーザー名をハッシュしてチェックしますそれはデータベースに対してです。これはより不便に思えるかもしれませんが、実際にはより多くのセキュリティを可能にします。データベースにクラックが入っていると、塩が発見されない限り、ユーザー名は安全です。 –

3

一般的に暗号については混乱しているようです。

SHAはCryptographic Hash Functionsです。彼らは可逆的ではないように設計されています。

自分とクライアントの間で安全な通信を行うには、エンドツーエンドの暗号化を使用するチャネル(httpsなど)を使用します。

関連する問題