3

私はパスワードをstring#cryptで暗号化するRubyクライアントプログラムを持っています

  encrypted = password.crypt(SALT)
  # removing first two characters which actually are the salt for safety
  return encrypted[2, encrypted.size - 2]

次に、それをサーバーに送信して、保存されている事前に暗号化された文字列と比較します。同じ暗号化されたパスワードフォームac#アプリとphp Webページを送信できる必要があり、他のクライアントから同じパスワードでログインできる必要があります。

暗号化のための C# と php の同等のコードは何でしょうか?

4

1 に答える 1

6

  • クリプト(3)

    crypt() はパスワード暗号化関数です。これは、(とりわけ) キー検索のハードウェア実装の使用を思いとどまらせることを意図したバリエーションを持つデータ暗号化標準アルゴリズムに基づいています。

    key は、ユーザーが入力したパスワードです。

    salt は、セット [a-zA-Z0-9./] から選択された 2 文字の文字列です。この文字列は、4096 通りの方法のいずれかでアルゴリズムを混乱させるために使用されます。

ルビー

  • クリプト

    標準ライブラリ関数 crypt を呼び出して、一方向暗号化ハッシュを str に適用します。引数はソルト文字列で、2 文字の長さで、各文字は [a-zA-Z0-9./] から引き出されます。

PHP

  • クリプト

    crypt() は、標準の Unix DES ベースの暗号化アルゴリズムまたはシステムで利用可能な代替アルゴリズムを使用して、暗号化された文字列を返します。

パイソン

  • crypt.crypt

    このモジュールは、変更された DES アルゴリズムに基づく一方向ハッシュ関数である crypt(3) ルーチンへのインターフェイスを実装します。

C#

.NET Framework には Unix crypt関数の API は含まれていませんが、実装を提供するいくつかのライブラリを次に示します。

  • CryptAPI

    CryptAPI は、.NET フレームワーク (NT、NTLM、BlowFish、DES、および MD5) で実装されていないアルゴリズムを含む C# ライブラリであり、C# で再プログラミングされた crypt() unix 関数をリンクおよびエミュレートします。主な目的は、下位互換性を提供することです。

  • Unix crypt() の AC# 実装

于 2009-12-14T02:56:26.210 に答える