Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielcode für die grundlegende Verwendung des erweiterten PHP-Hash-Moduls

Beispielcode für die grundlegende Verwendung des erweiterten PHP-Hash-Moduls

黄舟
黄舟Original
2017-03-15 17:14:461426Durchsuche

PHP-ErweiterungHashBeispielcode für die grundlegende Verwendung des Moduls

<?php
echo &#39;<pre class="brush:php;toolbar:false">&#39;;

$algos = hash_algos(); //列出所有支持的hash算法
// print_r($algos);


// ------------------------------------------------------
// 字符串hash
$data = &#39;The quick brown fox jumped over the lazy dog.&#39;;
echo hash(&#39;md5&#39;, $data); //md5 哈希
$key = &#39;md5-key&#39;;
echo hash_hmac(&#39;md5&#39;, $data, $key); //使用 HMAC 方法生成带有密钥的哈希值


// ------------------------------------------------------
// 文件hash
$file = &#39;hmac.txt&#39;;
echo hash_file(&#39;md5&#39;, $file);
echo hash_hmac_file(&#39;md5&#39;, $file, $key);


// ------------------------------------------------------
/**
 * @param $algo hash算法
 * @param $data string|array 字符串或者字符串数组
 * @param $options 进行哈希运算的可选设置,目前仅支持:HASH_HMAC。当指定此选项时,必须指定 key 参数
 * @param $key 当 options 参数为 HASH_HMAC 时,使用此参数传入进行 HMAC 哈希运算时的共享密钥
 */
function my_hash_data($algo, $data, $options = 0, $key = NULL) {
	// resource hash_init ( string $algo [, int $options = 0 [, string $key = NULL ]] )
	$ctx = hash_init($algo, $options, $key);
	if(is_string($data)) {
		hash_update($ctx, $data);
	} else if(is_array($data)) {
		foreach($data as $s) {
			hash_update($ctx, $s); //填充数据, 可以多次调用, 和拼接字符串效果一样
		}
	}
	return hash_final($ctx); //输出最后的数据
}

// test code
echo my_hash_data(&#39;md5&#39;, $data);


// ------------------------------------------------------
/**
 * 文件类型 hash
 */
function my_hash_file($algo, $filename, $options = 0, $key = NULL) {
	$ctx = hash_init($algo, $options, $key);
	/*
	两个函数的不同之处:
	 1. hash_update_stream	第二个参数是一个打开的文件句柄
	 2. hash_update_file	第二个参数是一个文件名
	*/
	hash_update_file($ctx, $filename);
	return hash_final($ctx);
}

// test code
echo my_hash_file(&#39;sha1&#39;, $file);

Das obige ist der detaillierte Inhalt vonBeispielcode für die grundlegende Verwendung des erweiterten PHP-Hash-Moduls. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn