本文整理汇总了PHP中hash_init函数的典型用法代码示例。如果您正苦于以下问题:PHP hash_init函数的具体用法?PHP hash_init怎么用?PHP hash_init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了hash_init函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: verify
public function verify($password, $hash)
{
$key = hash(self::HASH_PRIMITIVE, $password, true);
$hash = base64_decode($hash);
$header = substr($hash, 0, self::HEADER_SIZE);
$iv = substr($hash, self::HEADER_SIZE, self::IV_LENGTH);
$ciphertext = substr($hash, self::HEADER_SIZE + self::IV_LENGTH);
$decrypted = openssl_decrypt($ciphertext, self::CIPHER_PRIMITIVE, $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv);
list(, $version, $rounds, $pointerSize, $dataSize) = unpack('C*', $header);
$iterationCount = pow(2, $rounds);
$dataSizeDecoded = pow(2, $dataSize);
if ($version !== 1) {
throw new \RuntimeException("Unknown version encountered");
}
if (strlen($decrypted) !== self::HASH_LENGTH + $iterationCount * $pointerSize) {
throw new \RuntimeException("Invalid data payload, was it truncated?");
}
$h = hash_init(self::HASH_PRIMITIVE);
for ($i = 0; $i < $iterationCount; $i++) {
$pointer = substr($decrypted, $i * $pointerSize, $pointerSize);
hash_update($h, $this->read($pointer, $dataSizeDecoded));
}
$test = hash_final($h, true);
return hash_equals($test, substr($decrypted, $iterationCount * $pointerSize));
}
开发者ID:ircmaxell,项目名称:ballandchain,代码行数:25,代码来源:Hash.php
示例2: doBackup
protected function doBackup($stream, $tables, $gzip = false)
{
$db = Am_Di::getInstance()->db;
$stream_filter = null;
$hash = null;
$len = 0;
if ($gzip) {
$hash = hash_init('crc32b');
// gzip file header
fwrite($stream, $this->getGzHeader());
if (!($stream_filter = stream_filter_append($stream, "zlib.deflate", STREAM_FILTER_WRITE, self::COMPRESSION_LEVEL))) {
throw new Am_Exception_InternalError("Could not attach gzencode filter to output stream");
}
}
$this->out($stream, "### aMember Pro " . AM_VERSION . " database backup\n", $len, $hash);
$this->out($stream, "### Created: " . date('Y-m-d H:i:s') . "\n", $len, $hash);
foreach ($tables as $table) {
$this->out($stream, "\n\nDROP TABLE IF EXISTS {$table};\n", $len, $hash);
$r = $db->selectRow("SHOW CREATE TABLE {$table}");
$this->out($stream, $r['Create Table'] . ";\n", $len, $hash);
$q = $db->queryResultOnly("SELECT * FROM {$table}");
while ($a = $db->fetchRow($q)) {
$fields = join(',', array_keys($a));
$values = join(',', array_map(array($db, 'escape'), array_values($a)));
$this->out($stream, "INSERT INTO {$table} ({$fields}) VALUES ({$values});\n", $len, $hash);
}
$db->freeResult($q);
}
if ($stream_filter) {
stream_filter_remove($stream_filter);
fwrite($stream, $this->getGzFooter($len, $hash));
}
return $stream;
}
开发者ID:subashemphasize,项目名称:test_site,代码行数:34,代码来源:BackupProcessor.php
示例3: create_hash
public static function create_hash($data)
{
$hash = Config::get('hash');
$context = hash_init($hash['hash_algorithm'], HASH_HMAC, $hash['hash_general_key']);
hash_update($context, $data);
return hash_final($context);
}
开发者ID:simplymvc,项目名称:simplymvc,代码行数:7,代码来源:Hash.php
示例4: _auth
/**
* Аутентификация пользователя
*
* @param String $login
* @param String $password
* @param Bool $admin
* @return Bool
*/
protected function _auth($login, $password, $admin, $protocol)
{
$packet = $this->packet();
while (!feof($this->_socket)) {
$packet->clean();
$this->read($packet);
switch ($this->_code) {
case 192:
$digest = $packet->attr[6]['data'];
$ctx = hash_init('md5');
hash_update($ctx, $digest);
hash_update($ctx, $password);
$hash = hash_final($ctx, true);
$packet->clean();
$this->_code = 193;
$packet->set_attr_string($login, 2);
$packet->set_attr_string($digest, 8);
$packet->set_attr_string($hash, 9);
$packet->set_attr_int($protocol === 'tls' ? 6 : ($admin ? 4 : 2), 10);
$packet->set_attr_int(2, 1);
$this->write($packet);
break;
case 194:
$attr_protocol = $packet->get_attr_int(10);
if ($attr_protocol === 6) {
stream_socket_enable_crypto($this->_socket, TRUE, STREAM_CRYPTO_METHOD_TLS_CLIENT);
} elseif ($attr_protocol) {
stream_socket_enable_crypto($this->_socket, TRUE, STREAM_CRYPTO_METHOD_SSLv3_CLIENT);
}
return TRUE;
case 195:
return FALSE;
}
}
}
开发者ID:adeepv,项目名称:URFAClient,代码行数:43,代码来源:Connection.php
示例5: process
public function process(AssetInterface $asset)
{
$hash = hash_init('sha1');
switch ($this->strategy) {
case self::STRATEGY_MODIFICATION:
hash_update($hash, $asset->getLastModified());
break;
case self::STRATEGY_CONTENT:
hash_update($hash, $asset->dump());
break;
}
foreach ($asset as $i => $leaf) {
if ($sourcePath = $leaf->getSourcePath()) {
hash_update($hash, $sourcePath);
} else {
hash_update($hash, $i);
}
}
$hash = substr(hash_final($hash), 0, 7);
$url = $asset->getTargetPath();
$oldExt = pathinfo($url, PATHINFO_EXTENSION);
$newExt = '-' . $hash . '.' . $oldExt;
if (!$oldExt || 0 < preg_match('/' . preg_quote($newExt, '/') . '$/', $url)) {
return;
}
$asset->setTargetPath(substr($url, 0, (strlen($oldExt) + 1) * -1) . $newExt);
}
开发者ID:alexBLR,项目名称:firmware,代码行数:27,代码来源:CacheBustingWorker.php
示例6: getBaseMaterial
public function getBaseMaterial($seedBytes)
{
$mac = hash_init('sha256', HASH_HMAC, $this->key);
hash_update($mac, $seedBytes);
$data = hash_final($mac, true);
return $data;
}
开发者ID:Veivan,项目名称:WABuh,代码行数:7,代码来源:ChainKey.php
示例7: hash
public function hash()
{
$hasher = hash_init('sha256');
hash_update($hasher, 'identifier');
hash_update($hasher, $this->val);
return hash_final($hasher);
}
开发者ID:gokulp,项目名称:grokit,代码行数:7,代码来源:grokit_template_arg_info.php
示例8: create_git_object_hash
function create_git_object_hash( $p_file ) {
$t_hash_context = hash_init( 'sha1' );
hash_update( $t_hash_context, 'blob ' . filesize( $p_file ) . "\x00" );
hash_update_file( $t_hash_context, $p_file );
$t_object_hash = hash_final( $t_hash_context );
return $t_object_hash;
}
开发者ID:rombert,项目名称:mantisbt,代码行数:7,代码来源:check_integrity_inc.php
示例9: getHash
public static function getHash($algoritmo, $data, $key)
{
// $key refuerza la encriptación.
$hash = hash_init($algoritmo, HASH_HMAC, $key);
hash_update($hash, $data);
return hash_final($hash);
}
开发者ID:japriego,项目名称:publico01,代码行数:7,代码来源:Hash.php
示例10: getHashContext
public function getHashContext()
{
if (!isset($this->_hashContext)) {
$this->_hashContext = hash_init("md5");
}
return $this->_hashContext;
}
开发者ID:nabble,项目名称:updatemybrowser-v1,代码行数:7,代码来源:Cache.php
示例11: testBindWithPlaceholder_Constant
public function testBindWithPlaceholder_Constant()
{
$context = hash_init('md2');
$hash = partial_any('hash_update', $context, …());
$hash('oh hi');
$this->assertSame('6f24cbf6005b9bfc0176abbbe309f0d0', hash_final($context));
}
开发者ID:tdomarkas,项目名称:functional-php,代码行数:7,代码来源:PartialAnyTest.php
示例12: test_hash
function test_hash($algo, $init)
{
echo "\n{$algo}, incremental: ";
$h = hash_init($algo);
for ($i = 0; $i < 10; ++$i) {
hash_update($h, '' . $init * 2 + $i * 17);
}
echo '(copying state) ';
$h2 = hash_copy($h);
for ($i = 0; $i < 10; ++$i) {
hash_update($h, '' . $init * 2 + $i * 19);
}
var_dump(hash_final($h));
echo "\n{$algo}, from copied state: ";
var_dump(hash_final($h2));
echo "\n{$algo}, HMAC, incremental: ";
$h = hash_init($algo, HASH_HMAC, 'HMAC key. It can be very long, but in this case it will be rehashed to fit the block size of the hashing algorithm...' . $init * 147);
for ($i = 0; $i < 10; ++$i) {
hash_update($h, '' . $init * 4 + $i * 7);
}
//echo '(copying state) ';
//$h2 = hash_copy($h);// causes PHP crashes sometimes, reported as PHP Bug #52240
for ($i = 0; $i < 10; ++$i) {
hash_update($h, '' . $init * 3 + $i * 11);
}
var_dump(hash_final($h));
//echo "\n$algo, HMAC, from copied state: ";
//var_dump(hash_final($h2));// BUG IN PHP, HMAC key is not copied, but only referenced ... hash_final on $h clears the HMAC key in $h2 too... reported as PHP Bug #52240
echo "\n{$algo}, at once, short data: ";
var_dump(hash($algo, 'some string to be hashed ... ' . $init * 123 . ' ...'));
echo "\n{$algo}, at once, HMAC: ";
var_dump(hash_hmac($algo, 'some string to be hashed ... ' . $init * 123 . ' ...', 'HMAC key. It can be very long, but in this case it will be rehashed to fit the block size of the hashing algorithm.'));
}
开发者ID:dw4dev,项目名称:Phalanger,代码行数:33,代码来源:hash+functions+#26667.php
示例13: computeMd5Hash
/**
* Compute a full md5 file hash or compute a partial hash if $limit is present.
* Returns null on failure.
*
* @param string $realPath
* @param int $offset in bytes
* @param int $limit in bytes
* @param boolean $forcePartialHashing
*
* @return null|string
*/
public function computeMd5Hash($realPath, $offset = 0, $limit = 0, $forcePartialHashing = false)
{
if ($limit === 0 && $offset === 0 && !$forcePartialHashing) {
// md5_file is always faster if we don't chunk the file
$hash = md5_file($realPath);
return $hash !== false ? $hash : null;
}
$ctx = hash_init('md5');
if (!$ctx) {
// Fail to initialize file hashing
return null;
}
// Calculate limit from file size and offset
if ($limit === 0) {
$limit = filesize($realPath) - $offset;
}
$fh = @fopen($realPath, "rb");
if ($fh === false) {
// Failed opening file, cleanup hash context
hash_final($ctx);
return null;
}
fseek($fh, $offset);
while ($limit > 0) {
// Limit chunk size to either our remaining chunk or max chunk size
$chunkSize = $limit < $this->maxChunkByteSize ? $limit : $this->maxChunkByteSize;
$limit -= $chunkSize;
$chunk = fread($fh, $chunkSize);
hash_update($ctx, $chunk);
}
fclose($fh);
return hash_final($ctx);
}
开发者ID:jimrucinski,项目名称:Vine,代码行数:44,代码来源:HashComputer.php
示例14: create
public static function create($algo, $data, $salt)
{
$context = hash_init($algo, HASH_HMAC, $salt);
//$salt => $key
hash_update($context, $data);
return hash_final($context);
}
开发者ID:saptharsh,项目名称:Project-Management-App,代码行数:7,代码来源:Hash.php
示例15: test_hash_init
function test_hash_init()
{
$ctx = hash_init("md5");
hash_update($ctx, "The quick brown fox ");
hash_update($ctx, "jumped over the lazy dog.");
var_dump(hash_final($ctx));
}
开发者ID:afaltz,项目名称:hhvm,代码行数:7,代码来源:ext_hash.php
示例16: __construct
function __construct($url, $options = array())
{
register_shutdown_function(array(&$this, "__destruct"));
$ch = curl_init($url);
$this->temp_name = $this->generateUsefulTempName($url);
$this->temp_name_h = $this->generateTempName();
$options = $this->curl_options + $options;
$this->fp = fopen($this->temp_name, 'w');
if (!$this->fp) {
throw new Exception('Tempfile not writeable');
}
if ($this->canHash()) {
$this->hash_context = hash_init('sha1');
if (!$this->hash_context) {
throw new Exception('Hash context creation failed');
}
$options[CURLOPT_WRITEFUNCTION] = array($this, 'write');
} else {
// need to hash in some other way here
throw new Exception('Hash context unavailable');
$options[CURLOPT_FILE] = $this->fp;
}
$this->fp_h = fopen($this->temp_name_h, 'w+');
if (!$this->fp_h) {
throw new Exception('Tempfile not writeable');
}
$options[CURLOPT_WRITEHEADER] = $this->fp_h;
curl_setopt_array($ch, $options);
$mh = curl_multi_init();
curl_multi_add_handle($mh, $ch);
$this->ch = $ch;
$this->mh = $mh;
}
开发者ID:WIZARDISHUNGRY,项目名称:sflimetracker,代码行数:33,代码来源:disconnectedCurl.class.php
示例17: getResponseHeaders
/**
* Build a response header
*
* @param $buffer
* data to be used in response header
* @return
* response header
*/
static function getResponseHeaders($buffer = '', $uniqueOrigin = FALSE)
{
list($resource, $host, $origin, $strkey1, $strkey2, $data) = self::getRequestHeaders($buffer);
if (!self::validOrigin($origin, $uniqueOrigin)) {
self::console('Refusing connection from origin %s. Allowed origin(s): %s', array($origin, implode(', ', $uniqueOrigin)));
return FALSE;
}
// find numbers
$pattern = '/[^\\d]*/';
$replacement = '';
$numkey1 = preg_replace($pattern, $replacement, $strkey1);
$numkey2 = preg_replace($pattern, $replacement, $strkey2);
// find spaces
$pattern = '/[^ ]*/';
$replacement = '';
$spaces1 = strlen(preg_replace($pattern, $replacement, $strkey1));
$spaces2 = strlen(preg_replace($pattern, $replacement, $strkey2));
if ($spaces1 == 0 || $spaces2 == 0 || $numkey1 % $spaces1 != 0 || $numkey2 % $spaces2 != 0) {
WSHelpers::console('Handshake failed');
return FALSE;
}
$ctx = hash_init('md5');
hash_update($ctx, pack("N", $numkey1 / $spaces1));
hash_update($ctx, pack("N", $numkey2 / $spaces2));
hash_update($ctx, $data);
$hash_data = hash_final($ctx, TRUE);
return "HTTP/1.1 101 WebSocket Protocol Handshake\r\n" . "Upgrade: WebSocket\r\n" . "Connection: Upgrade\r\n" . "Sec-WebSocket-Origin: " . $origin . "\r\n" . "Sec-WebSocket-Location: ws://" . $host . $resource . "\r\n" . "\r\n" . $hash_data;
}
开发者ID:forktheweb,项目名称:Extendible-Web-Socket-Server,代码行数:36,代码来源:helpers.class.php
示例18: challengeCheck
function challengeCheck($call, $host1, $pass)
{
$h = hash_init('md5');
hash_update($h, CallRegister::$calls[$host1][$call->fields['dcalli']]['challenge']);
hash_update($h, $pass);
return hash_final($h) == CallRegister::$calls[$host1][$call->fields['dcalli']]['challenge_response'];
}
开发者ID:netfuse,项目名称:php-iax2,代码行数:7,代码来源:call_register.class.php
示例19: __construct
/**
* Constructs a new hash calculator using the given hashing method.
* @param string The hashingmethod to be used
*/
public final function __construct($hashingMethod = \System\Security\Hash::HASH_SHA1)
{
if (self::isHashAlgorithmInstalled($hashingMethod)) {
$this->hash = hash_init($hashingMethod);
} else {
throw new \InvalidArgumentException('Given hash method is not installed.');
}
}
开发者ID:Superbeest,项目名称:Core,代码行数:12,代码来源:Hash.class.php
示例20: getContext
/**
* Get a hash context or create one if needed
*
* @return resource
*/
private function getContext()
{
if (!$this->context) {
$key = isset($this->options['key']) ? $this->options['key'] : null;
$this->context = hash_init($this->algo, $key ? HASH_HMAC : 0, $key);
}
return $this->context;
}
开发者ID:abdala,项目名称:generic-api-client,代码行数:13,代码来源:PhpHash.php
注:本文中的hash_init函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论