當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Hmac::isSupported方法代碼示例

本文整理匯總了PHP中Zend\Crypt\Hmac::isSupported方法的典型用法代碼示例。如果您正苦於以下問題:PHP Hmac::isSupported方法的具體用法?PHP Hmac::isSupported怎麽用?PHP Hmac::isSupported使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Zend\Crypt\Hmac的用法示例。


在下文中一共展示了Hmac::isSupported方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: calc

 /**
  * Generate the new key
  *
  * @param  string  $hash       The hash algorithm to be used by HMAC
  * @param  string  $password   The source password/key
  * @param  string  $salt
  * @param  int $iterations The number of iterations
  * @param  int $length     The output size
  * @throws Exception\InvalidArgumentException
  * @return string
  */
 public static function calc($hash, $password, $salt, $iterations, $length)
 {
     if (!Hmac::isSupported($hash)) {
         throw new Exception\InvalidArgumentException("The hash algorithm {$hash} is not supported by " . __CLASS__);
     }
     $num = ceil($length / Hmac::getOutputSize($hash, Hmac::OUTPUT_BINARY));
     $result = '';
     for ($block = 1; $block <= $num; $block++) {
         $hmac = hash_hmac($hash, $salt . pack('N', $block), $password, Hmac::OUTPUT_BINARY);
         $mix = $hmac;
         for ($i = 1; $i < $iterations; $i++) {
             $hmac = hash_hmac($hash, $hmac, $password, Hmac::OUTPUT_BINARY);
             $mix ^= $hmac;
         }
         $result .= $mix;
     }
     return substr($result, 0, $length);
 }
開發者ID:leonardovn86,項目名稱:zf2_basic2013,代碼行數:29,代碼來源:Pbkdf2.php

示例2: testIsSupportedAndCache

 public function testIsSupportedAndCache()
 {
     Hmac::clearLastAlgorithmCache();
     $this->assertAttributeEquals(null, 'lastAlgorithmSupported', 'Zend\\Crypt\\Hmac');
     $algorithm = 'sha512';
     // cache value must be exactly equal to the original input
     $this->assertTrue(Hmac::isSupported($algorithm));
     $this->assertAttributeEquals($algorithm, 'lastAlgorithmSupported', 'Zend\\Crypt\\Hmac');
     $this->assertAttributeNotEquals('sHa512', 'lastAlgorithmSupported', 'Zend\\Crypt\\Hmac');
     // cache value must be exactly equal to the first input (cache hit)
     Hmac::isSupported('sha512');
     $this->assertAttributeEquals($algorithm, 'lastAlgorithmSupported', 'Zend\\Crypt\\Hmac');
     // cache changes with a new algorithm
     $this->assertTrue(Hmac::isSupported('MD5'));
     $this->assertAttributeEquals('MD5', 'lastAlgorithmSupported', 'Zend\\Crypt\\Hmac');
     // cache don't change due wrong algorithm
     $this->assertFalse(Hmac::isSupported('wrong'));
     $this->assertAttributeEquals('MD5', 'lastAlgorithmSupported', 'Zend\\Crypt\\Hmac');
     Hmac::clearLastAlgorithmCache();
     $this->assertAttributeEquals(null, 'lastAlgorithmSupported', 'Zend\\Crypt\\Hmac');
 }
開發者ID:rajanlamic,項目名稱:IntTest,代碼行數:21,代碼來源:HmacTest.php


注:本文中的Zend\Crypt\Hmac::isSupported方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。