ホームページ  >  記事  >  バックエンド開発  >  PHPで一般的に使用される暗号化方式は何ですか?

PHPで一般的に使用される暗号化方式は何ですか?

青灯夜游
青灯夜游オリジナル
2021-03-26 11:42:266614ブラウズ

PHP で一般的に使用される暗号化方法は次のとおりです: 1. md5() 関数を使用する; 2. crypt() 関数を使用する; 3. sha1() 関数を使用する; 4. urlencode() 関数を使用する; 5 .base64_encode()関数を使用します; 6.password_hash()関数を使用します。

PHPで一般的に使用される暗号化方式は何ですか?

#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

#一般的に使用される PHP 暗号化方式

##1. MD5 暗号化

##

string md5 ( string $str [, bool $raw_output = false ] )
#パラメータ

str -- 元の文字列。

  • raw_output -- オプションの raw_output が TRUE に設定されている場合、MD5 メッセージ ダイジェストは長さ 16 バイトの生のバイナリ形式で返されます。

  • 2. Crype Encryption

crypt() 標準 UNIX DES アルゴリズムまたは利用可能な他の代替アルゴリズムに基づく暗号化アルゴリズムを返します。システム上のハッシュ文字列。

string crypt ( string $str [, string $salt ] )
Parameters

str -- ハッシュされる文字列。

  • salt -- オプションのソルト値文字列。指定しない場合、アルゴリズムの動作はさまざまなアルゴリズムの実装によって決定され、予測できない結末につながる可能性があります。

  • #これも不可逆暗号化です
  • 3. Sha1 暗号化

string sha1 ( string $str [, bool $raw_output = false ] )
パラメータ


str -- 入力文字列。


    raw_output -- オプションの raw_output パラメータが TRUE に設定されている場合、sha1 ダイジェストは長さ 20 文字の raw 形式で返されます。それ以外の場合、戻り値は 40-文字長 16 基数。
  • これも不可逆暗号化です
  • 4. URL 暗号化
string urlencode ( string $str )

この関数はエンコードを容易にし、これを使用してURL のリクエスト部分を使用するだけでなく、次のページに変数を渡すことも簡単になります。

文字列を返します。この文字列内の -_ を除くすべての英数字以外の文字は、パーセント記号 (%) とその後に続く 2 つの 16 進数に置き換えられます。スペースは plus( ) としてエンコードされます。このエンコーディングは、WWW フォーム POST データのエンコーディングと同じであり、application/x-www-form-urlencoded メディア タイプと同じエンコーディングです。歴史的な理由により、このエンコーディングは、符号化スペースがプラス記号 ( ) であるという点で RFC1738 エンコーディングとは異なります。

string urldecode ( string $str )
指定されたエンコードされた文字列内の任意の %## をデコードします。プラス記号 (' ') はスペース文字にデコードされます。

#これは可逆暗号化であり、暗号化には urlencode メソッドが使用され、復号には urldecode メソッドが使用されます

#5. Base64 情報エンコード暗号化

string base64_encode ( string $data )
base64 を使用してデータをエンコードします。

このエンコーディングは、電子メールの本文など、非純粋な 8 ビット トランスポート層を介してバイナリ データを送信できるように設計されています。

Base64 でエンコードされたデータは、元のデータよりも約 33% 多くのスペースを占有します。

string base64_decode ( string $data [, bool $strict = false ] )

base64 でエンコードされたデータをデコードします。

パラメータ

#data -- エンコードされたデータ。

strict -- 入力データが Base64 アルファベットを超える場合は FALSE を返します。

  • 6.phpass (推奨)
  • phpass 0.3 でテスト済み。これは、ユーザーのパスワードを保存する前にハッシュすることで保護する標準的な方法です。データベース。 md5 や sha1 などの一般的に使用されるハッシュ アルゴリズムの多くは、ハッカーがこれらのアルゴリズムを使用するとパスワードを簡単に解読できるため、パスワードの保存には安全ではありません。

  • パスワードをハッシュする最も安全な方法は、bcrypt アルゴリズムを使用することです。オープンソースの phpass ライブラリは、この関数を使いやすいクラスで提供しています

7. 個人的には、より優れたパスワード暗号化方式だと考えています

PHP5.5 では、パスワード ハッシュが導入されていますfunction を使用する場合、カーネルには拡張機能をインストールする必要がありません。 PHP5.4でのテストも可能ですが、ご利用前に現在の環境がこれらの機能に対応しているかご確認ください。

パスワード ハッシュは主に 4 つの機能を提供します

//1.查看哈希值的相关信息
array password_get_info (string $hash)
 
//2.创建hash密码
string password_hash(string $password , integer $algo [, array $options ])

//3.判断hash密码是否特定选项、算法所创建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 

//4.验证密码
boolean password_verify (string $password , string $hash)

次の例:

$password = 'password123456';//原始密码
$hash_password = password_hash($password, PASSWORD_BCRYPT);//使用BCRYPT算法加密密码
if (password_verify($password , $hash_password)){
   echo "密码匹配";
}else{  
   echo "密码错误";
}
推奨学習:「

PHP ビデオ チュートリアル

以上がPHPで一般的に使用される暗号化方式は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。