php生成簽名及驗證簽名

2021-08-13 13:55:24 字數 1638 閱讀 6275

<?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...