ホームページ  >  記事  >  バックエンド開発  >  PHPは文字列のMD5ハッシュを計算します

PHPは文字列のMD5ハッシュを計算します

黄舟
黄舟オリジナル
2017-11-02 13:22:291521ブラウズ

文字列「Hello」の MD5 ハッシュを計算する:

<?php
$str = "Hello";
echo md5($str);
?>

定義と使用法

md5() 関数は、文字列の MD5 ハッシュを計算します。

md5() 関数は、MD5 メッセージ ダイジェスト アルゴリズムを含む RSA データ セキュリティを使用します。

RFC 1321 の説明 - MD5 メッセージ ダイジェスト アルゴリズム: MD5 メッセージ ダイジェスト アルゴリズムは、任意の長さの情報を入力値として受け取り、それを 128 ビット長の「フィンガープリント情報」または「メッセージ ダイジェスト」値に変換します。この入力値を表します。そして変換された値を結果として返します。 MD5 アルゴリズムは主に、安全な方法で圧縮する前に、RSA などの暗号化システムの公開キーを使用して大きなファイルを暗号化するデジタル署名アプリケーション向けに設計されています。

ファイルの MD5 ハッシュを計算するには、md5_file() 関数を使用します。

構文

md5(string,raw)

パラメータ 説明

文字列 必須。計算する文字列を指定します。

生 オプション。 16 進数またはバイナリの出力形式を指定します:

TRUE - 生の 16 文字のバイナリ形式

using use with with use using out out out through off ‐ ‐ ‐ ‐ ‐ ‐ バイナリ形式にする。 32 文字の 16 進数

技術的な詳細

戻り値: 成功した場合は計算された MD5 ハッシュを返し、失敗した場合は FALSE を返します。 ​​​​​​​​​​​​​​​​​​​​​​​

その他の例

インスタンス 1

md5() の結果を出力します:

<?php 
$str = "Hello"; 
echo "The string: ".$str."<br>"; 
echo "TRUE - Raw 16 character binary format: ".md5($str, TRUE)."<br>"; 
echo "FALSE - 32 character hex number: ".md5($str)."<br>"; 
?>

インスタンス 2

md5() の結果を出力してテストします:

<?php
$str = "Hello";
echo md5($str);

if (md5($str) == "8b1a9953c4611296a827abf8c47804d7")
{
echo "<br>Hello world!";
exit;
}
?>

 一般来说,一个提供会员注册的网站必定需要采集用户的密码,如何保存用户密码就是个问题。我们当然不能将密码以明文的方式储存在数据库中,因为这样的话,一般的管理员就可以查看到用户密码,显然对用户来说是件相当危险的事情。 

    那如何解决这个问题呢,我们可以采取这样的策略。 

    首先介绍一下PHP中MD5函数的使用方法: 

<?php  
$pswd1=md5("cenusdesign");  
echo $pswd1;     //运行结果为:fc60ec37d1c08d5b0fb67a8cd934d5ba  

$pswd2=md5("Cenusdesign");  
echo $pswd2;     //运行结果为:067577d9fc109c80538c81d6f02bd293  
?>


    显然,经过md5加密后,原本“cenusdesign”转变成了一组32位的字符串,而且,即使是一个字母的大小写变化,这组字符串就会发生巨大的变化。 

    Cenus Design建议把用户注册时,将密码首先经过MD5转换,然后将转换加密后的数据库。在用户登陆时,也将密码先进行MD5转化,再和数据库中那组经过MD5加密的字符串进行比较。这样,就可以做到在不知道用户确切密码的情况下完成密码的比对操作。 

以上がPHPは文字列のMD5ハッシュを計算しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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