コード例 #1
0
ファイル: URLCrypt.php プロジェクト: drehere/shenmegui
 /**
  * url_crypt加密算法的加密函数
  * 
  * @param string $tpl 产品线的tpl标识
  * @param string $key 加密所用的key
  * @param string $str 需要加密的内容
  * @return 加密后的16进制字符串或者false
  */
 public static function url_encrypt($tpl, $key, $str)
 {
     // first fcrypt hmac
     if (empty($str)) {
         return false;
     }
     $fcrypt_hash = fcrypt_encode_hmac(self::_buildFcryptKey($tpl, $key), $str);
     // then transform to low hex digits
     // the not ported fcrypt_encode_hex_low function use high nibble first style
     // why not use bin2hex? bin2hex is not clearly high nibble
     $fcrypt_hstr_arr = unpack('H*hash', $fcrypt_hash);
     if (isset($fcrypt_hstr_arr['hash'])) {
         $fcrypt_hstr = strtolower($fcrypt_hstr_arr['hash']);
     } else {
         return false;
     }
     return $fcrypt_hstr . sprintf("%04x", self::_crc16($fcrypt_hstr));
 }
コード例 #2
0
ファイル: zcache_api.php プロジェクト: NASH-WORK/NASH-CRM
 private function _makeNshead($logid_int, $query_pack)
 {
     $nshead = new ZCacheNsHead();
     $nshead_arr['provider'] = "zcacheadapter";
     $nshead_arr['log_id'] = $logid_int;
     $nshead_arr['reserved'] = $this->zcfObj->crypt_flag;
     if ($this->zcfObj->crypt_flag) {
         $crypt_data = fcrypt_encode_hmac('key', $query_pack);
         //$this->_log("fcrypt_encode_hmac: " . strlen($query_pack) . " " . strlen($crypt_data) );
         $nshead_arr['body_len'] = strlen($crypt_data);
         $buffer = $nshead->build_nshead($nshead_arr) . $crypt_data;
     } else {
         $nshead_arr['body_len'] = strlen($query_pack);
         $buffer = $nshead->build_nshead($nshead_arr) . $query_pack;
     }
     return $buffer;
 }
コード例 #3
0
ファイル: UrlCrypt.php プロジェクト: drehere/shenmegui
 /**
  * 生成图片sign
  * $sign_str 加密前的字符串
  */
 private function _create_sign($sign_str)
 {
     $s = fcrypt_encode_hmac($this->crypt_key, $sign_str);
     return bin2hex($s);
 }