PHP 5.4.33 Released

md5

(PHP 4, PHP 5)

md5Bir dizgenin md5 özetini hesaplar

Açıklama

string md5 ( string $dizge [, bool $ham_çıktı = false ] )

dizge dizgesinin MD5 özetini » RSA Data Security, Inc. MD5 İleti Özeti Algoritmasını kullanarak hesaplar ve bu özeti döndürür.

Değiştirgeler

dizge

Özeti hesaplanacak dizge.

ham_çıktı

İsteğe bağlı bu değiştirgede TRUE belirtirseniz MD5 özeti 16 bayt uzunlukta ham ikil biçemli bir dizge olarak döner. FALSE öntanımlıdır.

Dönen Değerler

İleti özetini 32 haneli onaltılık bir sayı dizgesi olarak olarak döndürür.

Sürüm Bilgisi

Sürüm: Açıklama
5.0.0 ham_çıktı değiştirgesi eklendi.

Örnekler

Örnek 1 - md5() örneği

<?php
$str 
'apple';

if (
md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo 
"Yeşil elma mı istersin kırmızı mı?";
    exit;
}
?>

Ayrıca Bakınız

  • md5_file() - Belirtilen dosyanın md5 özetini hesaplar
  • sha1_file() - Bir dosyanın sha1 özetini hesaplar
  • crc32() - Bir dizgenin crc32 çok terimlisini hesaplar
  • sha1() - Bir dizgenin sha1 özetini hesaplar
  • hash() - Bir ileti özeti üretir

add a note add a note

User Contributed Notes 13 notes

up
8
Shane Allen
11 years ago
From the documentation on Digest::MD5:
md5($data,...)
This function will concatenate all arguments, calculate the MD5 digest of this "message", and return it in binary form.

md5_hex($data,...)
Same as md5(), but will return the digest in hexadecimal form.

PHP's function returns the digest in hexadecimal form, so my guess is that you're using md5() instead of md5_hex(). I have verified that md5_hex() generates the same string as PHP's md5() function.

(original comment snipped in various places)
>Hexidecimal hashes generated with Perl's Digest::MD5 module WILL
>NOT equal hashes generated with php's md5() function if the input
>text contains any non-alphanumeric characters.
>
>$phphash = md5('pa$$');
>echo "php original hash from text: $phphash";
>echo "md5 hash from perl: " . $myrow['password'];
>
>outputs:
>
>php original hash from text: 0aed5d740d7fab4201e885019a36eace
>hash from perl: c18c9c57cb3658a50de06491a70b75cd
up
5
dionyziz at deviantart dot com
7 years ago
Sometimes it's useful to get the actual, binary, md5 digest.
You can use this function for it:

<?php

function md5bin( $target ) {
   
$md5 = md5( $target );
   
$ret = '';

    for (
$i = 0; $i < 32; $i += 2 ) {
       
$ret .= chr( hexdec( $md5{ $i + 1 } ) + hexdec( $md5{ $i } ) * 16 );
    }

    return
$ret;
}

?>
up
4
sebastian dot haller at freesurf dot ch
7 years ago
It has been found, that hash('md5', 'string'); is faster than md5($string):

http://www.php.net/manual/en/function.hash.php
up
0
terry _at_ scribendi_com
9 years ago
Do not use the hex strings returned by md5() as a key for MCrypt 256-bit encryption.  Hex characters only represent four bits each, so when you take 32 hex characters, you are only really using a 128-bit key, not a 256-bit one. 

Using an alphanumeric key generator [A-Za-z0-9] will also only provide a 192-bit key in 32 characters.

Two different MD5s concatenated in raw binary form, or mcrypt_create_iv(32,MCRYPT_DEV_RANDOM) will give you a true 256-bit key string.
up
-1
admin at gadelkareem dot com
6 years ago
MySQL MD() will not give you the same hash if character set is different.
ex :
<?php
#suppose table_name CHARSET=UTF8
#$md5 = md5('Städte'); # will give you a different hash than MySQL MD5()
#instead use
$md5 = md5(utf8_encode('Städte'));
$r = mysql_query("SELECT *, MD5(`word`) FROM `table_name` WHERE MD5(`word`) LIKE '{$md5}'");
if(
$r)
    while(
$row= mysql_fetch_assoc($r) )
       
print_r($row);

?>
up
-4
rahul dot giri64 at gmail dot com
6 months ago
Requested to every php programmer ,  never ever ever  use md5() to  encrypt your passwords. it's not safe.

Go for either one of this -

1)  SHA-1
2)   SHA-2(SHA-256 , SHA-512)
3) Whirlpool
4) Tiger
5) AES
6)blowfish (recommended 'it's , secure, free and easy)

I wish you safe internet life , thanks  :)
up
-6
John
4 years ago
If you want to hash a large amount of data you can use the hash_init/hash_update/hash_final functions.

This allows you to hash chunks/parts/incremental or whatever you like to call it.
up
-6
rahul dot giri64 at gmail dot com
6 months ago
Requested to every php programmer ,  never ever ever  use md5() to  encrypt your passwords. it's not safe.

Go for either one of them -

1)  SHA-1
2)   SHA-2(SHA-256 , SHA-512)
3) Whirlpool
4) Tiger
5) AES
6)blowfish (recommended 'it's , secure, free and easy)

I wish you safe internet life , thanks  :)
up
-7
rafael59
5 months ago
<?php
$str
= "string";
echo
md5($str);
?>
up
-9
John S.
9 years ago
If you want to replicate CPAN Digest::MD5's function md5_base64 in PHP, use this code:

<?php

function md5_base64 ( $data )
{
    return
preg_replace('/=+$/','',base64_encode(pack('H*',md5($data))));
}

?>
up
-14
Anonymous
3 years ago
This is not encryption..... it's only a sort of DIGEST
up
-11
programings at abv dot bg
1 year ago
This recursive function allow you to hash something in depth using md5().

<?php
function checksum($what, $depth = 1) {
$depth--;
if (!
$depth)
return
md5($what);
else
return
md5(checksum($what, $depth));
}
?>

The function hashed the previous hash to md5() again and again for number of times and returns the last received hash.

Example usage:

<?php
for ($i = 1; $i <= 10; $i++) {
echo
"$i. ".checksum("test", $i)."<br />";
}
?>

It can be used for security purposes.
up
-15
marzetti dot marco at NOSPAM dot gmail dot com
8 years ago
The complement of raw2hex

<?php

function hex2raw( $str ){
 
$chunks = str_split($str, 2);
  for(
$i = 0; $i < sizeof($chunks); $i++ ) {
       
$op .= chr( hexdec( $chunks[$i] ) );
    }
    return
$op;
}

?>
To Top