您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在php中通過對接java現實加簽驗簽,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
pem格式密鑰
-----BEGIN PUBLIC KEY----- //64chars一行(多行) -----END PUBLIC KEY----- -----BEGIN RSA PRIVATE KEY----- //64chars一行(多行) -----END RSA PRIVATE KEY-----
1.java密鑰轉為pem格式的php代碼
/** * 將字符串格式公私鑰格式化為pem格式公私鑰 * @param $secret_key * @param $type * @return string */ public static function format_secret_key($secret_key, $type){ //64個英文字符后接換行符"\n",最后再接換行符"\n" $key = (wordwrap($secret_key, 64, "\n", true))."\n"; //添加pem格式頭和尾 if ($type == 'pub') { $pem_key = "-----BEGIN PUBLIC KEY-----\n" . $key . "-----END PUBLIC KEY-----\n"; }else if ($type == 'pri') { $pem_key = "-----BEGIN RSA PRIVATE KEY-----\n" . $key . "-----END RSA PRIVATE KEY-----\n"; }else{ echo('公私鑰類型非法'); exit(); } return $pem_key; }
2.加簽
/** * RSA加簽 * @param $paramStr * @param $priKey * @return string */ public static function sign($paramStr, $priKey){ $sign = ''; //將字符串格式公私鑰轉為pem格式公私鑰 $priKeyPem = SignUtil::format_secret_key($priKey, 'pri'); //轉換為openssl密鑰,必須是沒有經過pkcs8轉換的私鑰 $res = openssl_get_privatekey($priKeyPem); //調用openssl內置簽名方法,生成簽名$sign openssl_sign($paramStr, $sign, $res); //釋放資源 openssl_free_key($res); //base64編碼簽名 $signBase64 = base64_encode($sign); //url編碼簽名 $sign = urlencode($signBase64); return $sign; }
3.驗簽
/** * RSA驗簽 * @param $paramStr * @param $sign * @param $pubKey * @return bool */ public static function verify($paramStr, $sign, $pubKey) { //將字符串格式公私鑰轉為pem格式公私鑰 $pubKeyPem = SignUtil::format_secret_key($pubKey, 'pub'); //轉換為openssl密鑰,必須是沒有經過pkcs8轉換的公鑰 $res = openssl_get_publickey($pubKeyPem); //url解碼簽名 $signUrl = urldecode($sign); //base64解碼簽名 $signBase64 = base64_decode($signUrl); //調用openssl內置方法驗簽,返回bool值 $result = (bool)openssl_verify($paramStr, $signBase64, $res); //釋放資源 openssl_free_key($res); //返回資源是否成功 return $result; }
上述內容就是怎么在php中通過對接java現實加簽驗簽,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。