現在の位置: ホーム> 関数カテゴリ一覧> crypt

crypt

一方向の文字列ハッシュ
名前:crypt
カテゴリ:
対応言語:php
一言説明:一元配置文字列暗号化方法(ハッシュ)。

定義と使用法

crypt()関数は、DES、BlowFish、またはMD5アルゴリズムを使用して暗号化された文字列を返します。

この機能は異なるオペレーティングシステムで異なる動作をし、一部のオペレーティングシステムは複数のアルゴリズムタイプをサポートしています。インストール中、PHPはどのアルゴリズムが利用可能か、どのアルゴリズムが使用されるかをチェックします。

特定のアルゴリズムは、パラメーターの形式と長さに依存します。特定の暗号化方法を使用して特定の文字列によって生成される文字列の数を増やすことにより、塩は暗号化をより安全にすることができます。

crypt()関数で使用される定数は次のとおりです。これらの一定の値は、設置時にPHPによって設定されます。

絶え間ない:

[crypt_salt_length] デフォルトの暗号化長。長さ2で標準のデス暗号化を使用します
[crypt_std_des] 標準DESアルゴリズムに基づくハッシュは、塩値として「./0-9A-ZA-Z」文字の2文字を使用します。塩値で違法な文字を使用すると、Crypt()が失敗します。
[crypt_ext_des] DESアルゴリズムに基づいて拡張ハッシュ。 9文字の塩値を持つ文字列は、1つのアンダースコアで構成され、その後4バイトのサイクルと4バイトの塩値が続きます。それらは印刷可能な文字にエンコードされ、各文字には6ビットがあり、最も有意なビットが好まれます。 0〜63は「./0-9A-ZA-Z」としてエンコードされます。塩値で違法な文字を使用すると、Crypt()が失敗します。
[crypt_md5] MD5ハッシュは、$ 1 $で始まる12文字の文字列塩値を使用します。
[crypt_blowfish] BlowFishアルゴリズムは、「$ 2A $」、2ビットコストパラメーター、「$」、「./0-9A-ZA-Z」の文字で構成される64ビット文字列の次の塩値を使用します。塩値でこの範囲外の文字を使用すると、Crypt()が空の文字列を返します。 2ビットコストパラメーターは、ベース2のループ数を持つ対数であり、その範囲は04-31です。この範囲を超えると、Crypt()が失敗します。
crypt_sha256 SHA-256アルゴリズムは、$ 5 $で始まる16文字の文字列塩値を使用してハッシュします。塩値の文字列が「rounds = <n> $」で始まる場合、nの数値を使用して、ハッシュループの実行数を指定します。これは、ブローフィッシュアルゴリズムのコストパラメーターによく似ています。ループのデフォルト数は5000、最小値は1000、最大値は999,999,999です。 nこの範囲外のnは、最も近い値に変換されます。
crypt_sha512 SHA-512アルゴリズムは、ハッシュに6ドルから始まる16文字の弦塩値を使用します。塩値の文字列が「rounds = <n> $」で始まる場合、nの数値を使用して、ハッシュループの実行数を指定します。これは、ブローフィッシュアルゴリズムのコストパラメーターによく似ています。ループのデフォルト数は5000、最小値は1000、最大値は999,999,999です。 nこの範囲外のnは、最も近い値に変換されます。

この関数が複数のアルゴリズムをサポートするシステムでは、上記の定数がサポートされている場合、「1」に設定されているため、「0」に設定されます。

注:対応する復号化関数はありません。 crypt()関数は一方向アルゴリズムを使用します。

この例では、さまざまなアルゴリズムをテストします。

 <?php
// 2文字の塩
if ( crypt_std_des == 1 )
{
エコー「標準DES:」 。 Crypt ( 'Something' 、 'St' ) 。 "\ n <br>" ;
}
それ以外
{
Echo "標準DESサポートされていない。\ n <br>" ;
}

// 4文字の塩
if ( crypt_ext_des == 1 )
{
echo "拡張des:" 。 Crypt ( 'Something' 、 '_s4..some' ) 。 "\ n <br>" ;
}
それ以外
{
echo "拡張されたdesはサポートされていません。\ n <br>" ;
}

// $ 1 $から始まる12文字
if ( crypt_md5 == 1 )
{
エコー"md5:" 。 Crypt ( 'Something' 、 '$ 1 $ somethin $' ) 。 "\ n <br>" ;
}
それ以外
{
echo "md5サポートされていない。\ n <br>" ;
}

// $ 2A $から始まる塩。ダブル番号のコストパラメーター:09。22文字
if ( crypt_blowfish == 1 )
{
エコー「ブローフィッシュ:」 。 Crypt ( 'Something' 、 '$ 2a $ 09 $ anexamplestringforsalt $' ) 。 "\ n <br>" ;
}
それ以外
{
echo "blowfish des not supported。\ n <br>" ;
}

// $ 5 $から始まる16文字の塩。円周のデフォルト数は5000です。
if ( crypt_sha256 == 1 )
{
エコー「Sha-256:」 。 Crypt ( 'Something' 、 '$ 5 $ rounds = 5000 $ anexamplestringforsalt $' ) 。 "\ n <br>" ; }
それ以外
{
echo "sha-256サポートされていない。\ n <br>" ;
}

// $ 5 $から始まる16文字の塩。円周のデフォルト数は5000です。
if ( crypt_sha512 == 1 )
{
エコー"sha-512:" 。 Crypt ( 'Something' 、 '$ 6 $ rounds = 5000 $ anexamplestringforsalt $' ) ;
}
それ以外
{
エコー「Sha-512はサポートされていません。」 ;
}
?>

上記のコードの出力(オペレーティングシステムに応じて):

標準DES:stqadd7zlbbyi
拡張DES:_S4..ESOMEQXIDLBPTUU6
md5:$ 1 $ somethin $ 4nzkruly6r7k7.rdeoz0w。
Blowfish:$ 2a $ 09 $ anexamplestringforsaleloukejcjrlexmf1671qw3khl49r3dfu
Sha-256:$ 5 $ rounds = 5000 $ anexamplestringf $ kirctqsxo2wrpg5ag/hs4jti4pmonkqugwfxlvy9vu9
Sha-512:$ 6 $ rounds = 5000 $ anexamplestringf $ oo0skoadufxkqxjpwzo05wgrhg0dhuapbaou/
onbgpceklf/7ovm5wn6an0w2vwuga0o24olzgqpp1xki6llq0。

文法

地下室( str
パラメーター 説明する
str 必須。エンコードする文字列を指定します。
オプション。エンコードされた文字の数を増やして、エンコードをより安全にするために使用されます。塩パラメーターが提供されていない場合、機能が呼び出されるたびにPHPがランダムに生成されます。
類似の関数
  • 文字列の最初の出現を見つけます strstr

    strstr

    文字列の最初の出現を見つけます
  • 反参照addcslashes()を使用して逃げた文字列 stripcslashes

    stripcslashes

    反参照addcslashes()を使用し
  • 文字列の最初のバイトを0〜255の間の値に変換します ord

    ord

    文字列の最初のバイトを0〜255の間の値
  • 文字列からHTMLおよびPHPタグを削除します strip_tags

    strip_tags

    文字列からHTMLおよびPHPタグを削除
  • 特殊文字をHTMLエンティティに変換します htmlspecialchars

    htmlspecialchars

    特殊文字をHTMLエンティティに変換しま
  • 論理 -  hebrewをビジュアルヘブライ語に変換します hebrev

    hebrev

    論理-hebrewをビジュアルヘブライ語
  • 文字列をランダムに破壊します str_shuffle

    str_shuffle

    文字列をランダムに破壊します
  • 文字列を複数の変数に解析します parse_str

    parse_str

    文字列を複数の変数に解析します