問題タブ [crypt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - crypt(3) のブルート フォース コードに関するヘルプが必要
UNIX で使用される crypt(3) 暗号化を「クラック」するプログラムを C で開発しようとしています。それを行う最も単純な方法は、私が推測するブルートフォースです。パスワードに含めることができるすべての記号を含む配列を作成し、それらのすべての可能な順列を取得して、それらを 2 次元配列に格納する必要があると考えました (1 文字のパスワードはすべて最初の行などに保存されます)。ループします。これを行うより良い方法はありますか?それはループでかなり面倒です。
encryption - Kohanaの認証モジュールで最も安全なアルゴリズムは何ですか?
crypt関数とblowfish暗号化を使用したいのですが、このモジュールの現在の実装では、この暗号化方式を提供していないハッシュ関数を使用しています。では、Kohanaの認証モジュールで最も安全なアルゴリズムは何ですか?SHA-512は良いオプションですか、それともcryptとblowfishを使用するようにモジュールを変更したほうがいいですか?
c# - Ruby string#crypt in C# および php
私はパスワードをstring#cryptで暗号化するRubyクライアントプログラムを持っています
次に、それをサーバーに送信して、保存されている事前に暗号化された文字列と比較します。同じ暗号化されたパスワードフォームac#アプリとphp Webページを送信できる必要があり、他のクライアントから同じパスワードでログインできる必要があります。
暗号化のための C# と php の同等のコードは何でしょうか?
c - crypt() 関数にメモリ リークがないのはなぜですか?
crypt(3)から- Linux man ページ:
戻り値: 暗号化されたパスワードへのポインタが返されます。エラーの場合、NULL
が返されます。
key と salt を指定しないと戻り値がわからないので、これは動的にメモリを割り当てるべきですが、valgrind は同意しません。
php - PHPのクリプトを使用したフグの塩の正しい形式は何ですか?
のPHPマニュアルエントリでcrypt()
提供されている情報を読みましたが、Blowfishアルゴリズムをトリガーするソルトの形式がまだわかりません。
手動入力によると、16文字の文字列の先頭として「$2$」または「$2a$」を使用する必要があります。ただし、後で示す例では、はるかに長い文字列' $2a$07$usesomesillystringforsalt$
'を使用しています。これは、提供する文字列がモデルに合うようにスライスおよびダイシングされることを示しています。
私が直面している問題は、実際にフグのアルゴvsをトリガーすることですSTD_DES
。例:
そのハッシュは明らかに渦巻きではなく、実際STD_DES
にはソルトの最初の2文字だけがソルトに使用されています。ただし、PHPマニュアルの例では、ソルトは''で始まる$2a$07$
ため、これら3つの文字を同じコードに追加すると、次のようになります。
07$
たとえば、ここで''04$
として示されている文字に多少の差異を与えることができ、15$
両方とも機能しますが、機能01$
し03$
ない(空白の文字列を生成する)、およびなどの値を使用し99$
て、再び85$
元に戻すことができることに気付きました。 STD_DES
。
質問:
$2a$
マニュアルで信じられているように、crypt関数にblowfishメソッドを使用するように指示する''文字列に続くこれらの3文字の重要性は何ですか。
マニュアルによると、' 'はフグの方法を使用する$2a$
ように指示するのに十分なはずです。crypt()
では、次の3文字の意味は何でしょうか。では、これらの3つの文字が非常に重要である場合、ソルトの正しい形式は何ですか?
php - crypt/blowfish が 2 つの異なるソルトで同じハッシュを生成するのはなぜですか?
この質問は、PHP のcrypt()
. この質問では、salt の最初の 7 文字はカウントされないため、salt ' $2a$07$a
' は、salt の 1 文字とメタデータの 7 文字のみであるため、長さ 1 であると言われます。
22 文字を超えるソルト文字列を使用する場合、生成されるハッシュ (つまり、切り捨て) に変更はありません。また、21 文字より短い文字列を使用する場合、ソルトは自動的にパディングされます (' $
' 文字が表示されます)。これはかなり簡単です。ただし、20 文字のソルトと 21 文字のソルトが指定された場合、21 文字の長さのソルトの最後の文字を除いて 2 つが同一である場合、両方のハッシュされた文字列は同一になります。22 文字の長さのソルトは、最後の文字を除いて 21 の長さのソルトと同じですが、ハッシュは再び異なります。
コードの例:
生産します:
どうしてこれなの?
編集:
一部のユーザーは、文字列全体に違いがあることに気付いていますが、これは事実です。ではsalt_20
、オフセット (28, 4) は ですがda$.
、 ではsalt_21
、オフセット (28, 4) はda2.
です。ただし、生成される文字列には、ハッシュ、ソルト、およびソルトを生成するための指示 (つまり$2a$07$
) が含まれることに注意することが重要です。違いが生じる部分は、実際にはまだ塩です。実際のハッシュは変更されていませんUxGYN739wLkV5PGoR1XA4EvNVPjwylG
。
したがって、これは実際には、生成されたハッシュの違いではなく、ハッシュを格納するために使用されるソルトの違いであり、これがまさに当面の問題です: 2 つのソルトが同じハッシュを生成しています。
Rembmer: 出力は次の形式になります。
ここで、## は、アルゴリズムが実行される反復回数を決定する log-base-2 です。
編集2:
コメントでは、ユーザーが私の出力を再現できなかったため、追加情報を投稿するように要求されました。次のコードの実行:
次の出力が生成されます。
お役に立てれば。
php - (PHP) crypt() を正しく実装する方法
crypt()の PHP マニュアル ページの例を次に示します。
なぜこれが機能するのですか?実際の管理者に使用してもらい'mypassword'
たいパスワードだと思います。だから私はそれを最初に暗号化し、それを に等しく設定し$password
ます。明らかに、それをDBに保存する必要があります。しかし、次の行では、ソルトと私が比較しているものの両方として使用されています。この後者の場合、理想的には正しいパスワード as を持っているが、比較されてソルト化されている場合、どうすればと等しくcrypt($user_input, $password)
なる可能性があるのか わかりませんに。最後の行が$password
$user_input
$password
$password
私は何を理解していませんか?
php - (PHP)CRYPT_BLOWFISHでcrypt()を使用する方法は?
まず、CRYPT_BLOWFISHを使用するには、$2a$で始まる16文字の塩を使用する必要があることがわかります。ただし、crypt()のphp.netドキュメントには、一部のシステムはCRYPT_BLOWFISHをサポートしていないと記載されています。その場合はどのくらいの頻度ですか?
次に、ドキュメントの例から、次のようにcrypt()を使用していることがわかります。
CRYPT_BLOWFISHを使用するために、私が変更する必要があるのは、そのようにするための最初の行だけです。
その後、残りの行はそのままで問題ありませんか?
c - crypt 関数とリンク エラー「'crypt' への未定義の参照」
c の crypt 関数を使用して、指定された文字列を暗号化しました。私は次のコードを書きました、
しかし、上記のコードは、「'crypt' への未定義の参照」というエラーをスローしました。上記のコードの問題は何ですか。
前もって感謝します。
python - Python を使用して Windows で互換性のある LDAP パスワード (md5crypt) を作成する
WindowsでPythonを介してLDAP互換パスワード(md5cryptを推奨)を作成する方法を知っていますか
私はLinuxでこのようなものを書いていましたが、cryptモジュールはWindowsには存在しません