婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP開發API接口簽名生成及驗證操作示例

PHP開發API接口簽名生成及驗證操作示例

熱門標簽:電子地圖標注怎么修改 梧州市機器人外呼系統怎么樣 臨沂crm外呼系統平臺 地圖標注符號樣式有 天客通地圖標注 如何在世界地圖標注 廈門400電話辦理選易號網 菏澤語音外呼系統運營商 公司外呼系統中心

本文實例講述了PHP開發API接口簽名生成及驗證操作。分享給大家供大家參考,具體如下:

開發過程中,我們經常會與接口打交道,有的時候是調取別人網站的接口,有的時候是為他人提供自己網站的接口,但是在這調取的過程中都離不開簽名驗證。

我們在設計簽名驗證的時候,請注意要滿足以下幾點:

  • 可變性:每次的簽名必須是不一樣的。
  • 時效性:每次請求的時效,過期作廢等。
  • 唯一性:每次的簽名是唯一的。
  • 完整性:能夠對傳入數據進行驗證,防止篡改。

一、簽名參數sign生成的方法

第1步: 將所有參數(注意是所有參數),除去sign本身,以及值是空的參數,按參數名字母升序排序。

第2步: 然后把排序后的參數按參數1值1參數2值2…參數n值n(這里的參數和值必須是傳輸參數的原始值,不能是經過處理的,如不能將quot;轉成”后再拼接)的方式拼接成一個字符串。

第3步: 把分配給接入方的驗證密鑰key拼接在第2步得到的字符串前面。

第2步: 在上一步得到的字符串前面加上驗證密鑰key(這里的密鑰key是接口提供方分配給接口接入方的),然后計算md5值,得到32位字符串,然后轉成大寫.

第4步: 計算第3步字符串的md5值(32位),然后轉成大寫,得到的字符串作為sign的值。

舉例:

假設傳輸的數據是/interface.php?sign=sign_valuep2=v2 p1=v1method=cancelp3=pn=vn(實際情況最好是通過post方式發送),其中sign參數對應的sign_value就是簽名的值。

第一步,拼接字符串,首先去除sign參數本身,然后去除值是空的參數p3,剩下p2=v2p1=v1method=cancel pn=vn,然后按參數名字符升序排序,method=cancelp1=v1p2=v2pn=vn.

第二步,然后做參數名和值的拼接,最后得到methodcancelp1v1p2v2pnvn

第三步,在上面拼接得到的字符串前加上驗證密鑰key,我們假設是abc,得到新的字符串abcmethodcancelp1v1p2v2pnvn

第四步,然后將這個字符串進行md5計算,假設得到的是abcdef,然后轉為大寫,得到ABCDEF這個值即為sign簽名值。

注意,計算md5之前請確保接口與接入方的字符串編碼一致,如統一使用utf-8編碼或者GBK編碼,如果編碼方式不一致則計算出來的簽名會校驗失敗。

二、簽名驗證方法:

根據前面描述的簽名參數sign生成的方法規則,計算得到參數的簽名值,和參數中通知過來的sign對應的參數值進行對比,如果是一致的,那么就校驗通過,如果不一致,說明參數被修改過。

三、下面直接看代碼

?php
// 設置一個公鑰(key)和私鑰(secret),公鑰用于區分用戶,私鑰加密數據,不能公開
$key = "c4ca4238a0b923820dcc509a6f75849b";
$secret = "28c8edde3d61a0411511d3b1866f0636";

// 待發送的數據包
$data = array(
  'username' => 'abc@qq.com',
  'sex' => '1',
  'age' => '16',
  'addr' => 'guangzhou',
  'key' => $key,
  'timestamp' => time(),
);

// 獲取sign
function getSign($secret, $data) {
  // 對數組的值按key排序
  ksort($data);
  // 生成url的形式
  $params = http_build_query($data);
  // 生成sign
  $sign = md5($params . $secret);
  return $sign;
}

// 發送的數據加上sign
$data['sign'] = getSign($secret, $data);

/**
 * 后臺驗證sign是否合法
 * @param [type] $secret [description]
 * @param [type] $data  [description]
 * @return [type]     [description]
 */
function verifySign($secret, $data) {
  // 驗證參數中是否有簽名
  if (!isset($data['sign']) || !$data['sign']) {
    echo '發送的數據簽名不存在';
    die();
  }
  if (!isset($data['timestamp']) || !$data['timestamp']) {
    echo '發送的數據參數不合法';
    die();
  }
  // 驗證請求, 10分鐘失效
  if (time() - $data['timestamp'] > 600) {
    echo '驗證失效, 請重新發送請求';
    die();
  }
  $sign = $data['sign'];
  unset($data['sign']);
  ksort($data);
  $params = http_build_query($data);
  // $secret是通過key在api的數據庫中查詢得到
  $sign2 = md5($params . $secret);
  if ($sign == $sign2) {
    die('驗證通過');
  } else {
    die('請求不合法');
  }
}
?>

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php程序設計安全教程》、《php安全過濾技巧總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • 淺談PHP SHA1withRSA加密生成簽名及驗簽
  • php實現往pdf中加數字簽名操作示例【附源碼下載】
  • PHP實現的MD5結合RSA簽名算法實例
  • 用PHP去掉文件頭的Unicode簽名(BOM)方法
  • PHP實現RSA簽名生成訂單功能【支付寶示例】
  • php rsa 加密,解密,簽名,驗簽詳解
  • php 生成簽名及驗證簽名詳解
  • php接口數據加密、解密、驗證簽名
  • 詳解PHP接口簽名驗證

標簽:迪慶 雞西 郴州 白城 綿陽 黃石 瀘州 貴陽

巨人網絡通訊聲明:本文標題《PHP開發API接口簽名生成及驗證操作示例》,本文關鍵詞  PHP,開發,API,接口,簽名,生成,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP開發API接口簽名生成及驗證操作示例》相關的同類信息!
  • 本頁收集關于PHP開發API接口簽名生成及驗證操作示例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩国产欧美在线观看| 久久久久久影视| 日本不卡视频在线| 欧美韩国日本不卡| 欧洲精品在线观看| 国产精品1024| 日韩黄色免费电影| 国产偷国产偷亚洲高清人白洁| 欧美性色黄大片手机版| 色综合色狠狠综合色| 国产在线精品免费| 久久99精品国产91久久来源| 亚洲人成网站在线| 国产三级精品在线| 欧美天堂一区二区三区| 色美美综合视频| 91传媒视频在线播放| 国产91丝袜在线观看| 久久精品免费看| 日本欧美一区二区| 亚洲国产精品综合小说图片区| 亚洲一区二区三区四区在线免费观看 | 性久久久久久久| 亚洲影视资源网| 亚洲成av人片一区二区| 亚洲欧美经典视频| 一区二区三区成人| 一区二区欧美国产| 亚洲一区二区在线免费看| 麻豆91精品视频| 欧洲人成人精品| 99久久99久久精品国产片果冻 | 国产精品卡一卡二| 中文一区二区在线观看| 亚洲欧美色图小说| 丝袜国产日韩另类美女| 天天操天天干天天综合网| 国产99久久久国产精品| 国产成人精品午夜视频免费| www.日韩大片| 欧美亚洲愉拍一区二区| 欧美一级日韩不卡播放免费| 日韩午夜av电影| 亚洲色图19p| 精品一区中文字幕| 91精品欧美一区二区三区综合在| 欧美一区二区网站| 2020国产精品自拍| 调教+趴+乳夹+国产+精品| 国产一区二区久久| 99精品在线观看视频| 日韩一区二区三区在线| 亚洲人成网站精品片在线观看| 国产风韵犹存在线视精品| 一本久道久久综合中文字幕 | 国产精品77777| 欧美午夜片在线看| 日本一区二区三区四区 | 成人av小说网| 亚洲欧洲av在线| 久久成人羞羞网站| 91在线国内视频| 色哦色哦哦色天天综合| 亚洲蜜桃精久久久久久久| 99久久精品国产网站| 亚洲视频你懂的| 欧美体内she精视频| 亚洲成人av电影在线| 最新国产の精品合集bt伙计| 国产精品18久久久久久久网站| 日韩小视频在线观看专区| 九色综合狠狠综合久久| 中文字幕乱码久久午夜不卡 | 激情综合色播激情啊| 亚洲国产乱码最新视频| 国产风韵犹存在线视精品| 国产91精品久久久久久久网曝门 | 91麻豆蜜桃一区二区三区| 欧美日韩精品免费观看视频| 久久亚洲一区二区三区四区| 国产麻豆91精品| 日韩欧美国产一区在线观看| 麻豆一区二区三| 欧美成人综合网站| 国产网站一区二区| k8久久久一区二区三区| 国产欧美日韩激情| 成人激情午夜影院| 亚洲日本青草视频在线怡红院| 精品国产伦理网| 欧美一区二区高清| 国产在线精品不卡| 一区二区三区日本| 久久只精品国产| 日韩欧美在线影院| 亚洲国产精华液网站w| 欧美大胆一级视频| 99久久精品一区二区| 亚洲黄色尤物视频| 欧美精品一卡两卡| 色综合久久久久久久久| 婷婷久久综合九色综合伊人色| 国产精品久久久久久久久免费樱桃 | 国产精品麻豆一区二区| 99re热这里只有精品视频| 国产一区二区精品久久99| 国产精品国产三级国产普通话99| 国产清纯美女被跳蛋高潮一区二区久久w | 最近中文字幕一区二区三区| 久久综合色之久久综合| 色综合久久天天综合网| 国产一区二区三区香蕉| 免费在线看一区| 日本不卡在线视频| 国产成人一区在线| 国产寡妇亲子伦一区二区| 亚洲一级二级在线| 国产精品久久午夜夜伦鲁鲁| 国产亚洲综合在线| 国产欧美日韩在线看| 一区二区三区精密机械公司| 亚洲大型综合色站| 国模一区二区三区白浆| 日韩精品乱码免费| 亚洲自拍偷拍网站| 亚洲国产精品精华液ab| 久久久久久99久久久精品网站| 国产视频在线观看一区二区三区 | 久久久亚洲精品一区二区三区 | 麻豆极品一区二区三区| 国产精品一级片在线观看| 国产成人丝袜美腿| 欧美三级在线看| 欧美国产日韩亚洲一区| 美女高潮久久久| 91网址在线看| 欧美日韩国产系列| 欧美电影一区二区三区| 日韩视频一区在线观看| 亚洲三级免费观看| 成人短视频下载| 久久久777精品电影网影网 | 首页亚洲欧美制服丝腿| 一本高清dvd不卡在线观看| 综合久久综合久久| 日本成人在线电影网| 国产激情视频一区二区三区欧美 | 国产精品毛片久久久久久| 久久国产精品99久久久久久老狼| 99这里都是精品| 日韩一卡二卡三卡| 日本sm残虐另类| 精品电影一区二区三区| 日韩专区中文字幕一区二区| 亚洲在线视频一区| 成熟亚洲日本毛茸茸凸凹| 日韩视频在线你懂得| 夜夜嗨av一区二区三区网页| 北条麻妃一区二区三区| 精品国产网站在线观看| 亚洲国产日韩a在线播放| fc2成人免费人成在线观看播放| 久久精品视频一区二区三区| 激情久久五月天| 精品成人私密视频| 久久国产精品一区二区| 91麻豆精品国产91久久久使用方法| 日本欧美一区二区三区| 精品欧美一区二区久久| 国产精品69久久久久水密桃| 国产亚洲欧洲一区高清在线观看| 99精品热视频| 裸体一区二区三区| 国产精品不卡在线| 欧洲一区在线观看| 日韩av电影免费观看高清完整版在线观看 | 日本欧美在线观看| 日韩一区二区精品葵司在线| 蜜臀av亚洲一区中文字幕| 亚洲天堂av一区| 91精品午夜视频| 久久国产免费看| 亚洲精品国产一区二区三区四区在线| 成人性生交大片免费看在线播放| 亚瑟在线精品视频| 国产欧美一区在线| 欧美日韩中文字幕一区二区| 另类成人小视频在线| 国产精品毛片a∨一区二区三区| 日韩精品一区在线| 日韩精品一区在线| 宅男在线国产精品| 欧美视频三区在线播放| 色综合天天综合在线视频| 91网站黄www| 成人免费视频一区二区| 粉嫩aⅴ一区二区三区四区 | **欧美大码日韩| 久久久久久久久久久久电影| 日韩一区二区三区视频在线观看|