>  기사  >  백엔드 개발  >  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() 함수를 사용하세요.

Syntax

md5(string,raw)

매개변수             설명

string          필수입니다. 계산할 문자열을 지정합니다. ​

raw ​ ​ ​ 선택사항입니다. 16진수 또는 이진수 출력 형식을 지정합니다.

                        TRUE - 원시 16자 이진 형식

                                                                                         사용 사용 사용 사용 사용 사용                 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.