mirror of
https://github.com/php/php-src.git
synced 2024-10-17 06:22:53 +00:00
308 lines
9.3 KiB
PHP
308 lines
9.3 KiB
PHP
--TEST--
|
||
Test md5() function with ASCII output and raw binary output
|
||
--FILE--
|
||
<?php
|
||
|
||
/* Prototype: string md5( string str[, bool raw_output] )
|
||
* Description: Calculates the MD5 hash os string str and returns that hash as string.
|
||
*/
|
||
|
||
echo md5("")."\n";
|
||
echo md5("a")."\n";
|
||
echo md5("abc")."\n";
|
||
echo md5("message digest")."\n";
|
||
echo md5("abcdefghijklmnopqrstuvwxyz")."\n";
|
||
echo md5("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")."\n";
|
||
echo md5("12345678901234567890123456789012345678901234567890123456789012345678901234567890")."\n";
|
||
|
||
/* Testing Error Conditions */
|
||
echo "\n*** Testing Error Conditions ***\n";
|
||
/* zero arguments */
|
||
var_dump ( md5() );
|
||
|
||
/* More than valid number of arguments ( valid is 2) */
|
||
var_dump ( md5("a", true, NULL) );
|
||
|
||
$sample_string = "strings";
|
||
$counter = 1;
|
||
|
||
/* Variations of input strings in an array */
|
||
$mixed_array = array( NULL, 1234, "12345%", "abcd#123XYZ", "abc !@#$",
|
||
'string1', "$sample_string",
|
||
"qwertyuioplkjhgfdsazxcvbnm0123654789mnbvcxzasdfghjklpoiuytrewq7896541230mnbvcxzlkjhgfdsaqwertyuiop3210456789qwertyuioplkjhgfdsazxcvbnm1236547890123654789mnbvcxzlkjhgfdsapoiuytrewq");
|
||
|
||
|
||
/* looping to test md5() with different variations in its parameters */
|
||
foreach( $mixed_array as $input_str)
|
||
{
|
||
echo "\n--Iteration ".$counter." --\n";
|
||
var_dump( md5($input_str) );
|
||
var_dump( md5($sample_string.$input_str."a") );
|
||
var_dump( md5($input_str, true) );
|
||
var_dump( md5($input_str, false) );
|
||
var_dump( md5($input_str, 12) );
|
||
var_dump( md5($input_str, 0) );
|
||
var_dump( md5($input_str, -12) );
|
||
var_dump( md5($input_str, NULL) );
|
||
var_dump( md5($input_str, "STRING") );
|
||
$counter++;
|
||
}
|
||
|
||
/* Use of class and objects */
|
||
echo "\n*** Testing with OBJECTS ***\n";
|
||
class string1
|
||
{
|
||
public function __toString() {
|
||
return "Object_for_md5_function";
|
||
}
|
||
}
|
||
$obj = new string1;
|
||
var_dump( md5($obj) );
|
||
|
||
/* String with embedded NULL */
|
||
echo "\n*** Testing with String with embedded NULL ***\n";
|
||
var_dump( md5("1234\x0005678\x0000efgh\xijkl") );
|
||
|
||
/* heredoc string */
|
||
$str = <<<EOD
|
||
us
|
||
ing heredoc string
|
||
EOD;
|
||
|
||
echo "\n*** Testing with heredoc string ***\n";
|
||
var_dump( md5($str) );
|
||
|
||
echo "\nDone";
|
||
|
||
?>
|
||
--EXPECTF--
|
||
d41d8cd98f00b204e9800998ecf8427e
|
||
0cc175b9c0f1b6a831c399e269772661
|
||
900150983cd24fb0d6963f7d28e17f72
|
||
f96b697d7cb7938d525a2f31aaf161d0
|
||
c3fcd3d76192e4007dfb496cca67e13b
|
||
d174ab98d277d9f5a5611c2c9f419d9f
|
||
57edf4a22be3c955ac49da2e2107b67a
|
||
|
||
*** Testing Error Conditions ***
|
||
|
||
Warning: md5() expects at least 1 parameter, 0 given in %s on line %d
|
||
NULL
|
||
|
||
Warning: md5() expects at most 2 parameters, 3 given in %s on line %d
|
||
NULL
|
||
|
||
--Iteration 1 --
|
||
string(32) "d41d8cd98f00b204e9800998ecf8427e"
|
||
string(32) "48ea99a5b9577fecc55e990f8cb78acf"
|
||
string(16) "<22><1D>ُ |