<?php
/*** 根據原文生成簽名內容
** @param string $data 原文內容
** @return string
* @author confu
*/function sign($data)
$pkcs12 = file_get_contents($filepath);
if (openssl_pkcs12_read($pkcs12, $certs, '讀取證書所需要的密碼')) else
} else
}/**
* 驗證簽名自己生成的是否正確
** @param string $data 簽名的原文
* @param string $signature 簽名
** @return bool
* @author confu
*/function verifysign($data, $signature)
$pkcs12 = file_get_contents($filepath);
if (openssl_pkcs12_read($pkcs12, $certs, '讀取證書所需要的密碼'))
}return false;
}/**
* 驗證返回的簽名是否正確
** @param string $data 要驗證的簽名原文
* @param string $signature 簽名內容
** @return bool
* @author confu
*/function verifyrespondsign($data, $signature)
$fp = fopen($filepath, "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);
if(!is_resource($pubkeyid))
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1)
return false;
}?>
openssl_sign 預設signature_alg引數是openssl_algo_sha1如果使用dsa加密方式需要使用openssl_algo_dss1引數
signature_alg 其他引數
openssl_algo_dss1 (integer)
openssl_algo_sha1 (integer)
openssl_algo_sha224 (integer)
openssl_algo_sha256 (integer)
openssl_algo_sha384 (integer)
openssl_algo_sha512 (integer)
openssl_algo_rmd160 (integer)
openssl_algo_md5 (integer)
openssl_algo_md4 (integer)
openssl_algo_md2 (integer)
php生成簽名及驗證簽名
php生成簽名及驗證簽名 余超 yuchao86 gmail.com 啥也不說了,直接上源 根據原文生成簽名內容 param string data 原文內容 return string author confu function sign data pkcs12 file get contents...
php介面簽名驗證
在做一些api介面設計時候會遇到設定許可權問題,比如我這個介面只有指定的使用者才能訪問。很多時候api介面是屬於無狀態的,沒辦法獲取session,就不能夠用登入的機制去驗證,那麼 大概的思路是在請求包帶上我們自己構造好的簽名,這個簽名必須滿足下面幾點 a 唯一性,簽名是唯一的,可驗證目標使用者 b...
php實現jwt簽名 驗證
composer下有個包,可以用來實現jwt,我們重新包裝下拿來用。1 安裝composer包 composer require firebase php jwt2 編寫乙個jwtservice的類 use firebase jwt jwt class jwtservice public funct...