当前位置: 首页>>代码示例>>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;未经允许,请勿转载。