91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中通過對接java現實加簽驗簽

發布時間:2021-03-05 16:04:48 來源:億速云 閱讀:199 作者:Leah 欄目:開發技術

本篇文章為大家展示了怎么在php中通過對接java現實加簽驗簽,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

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現實加簽驗簽,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元阳县| 镶黄旗| 大姚县| 昌宁县| 雷山县| 永安市| 铁岭市| 庆阳市| 东平县| 呈贡县| 斗六市| 杨浦区| 林州市| 金阳县| 精河县| 泾源县| 崇文区| 乾安县| 繁峙县| 迁安市| 启东市| 调兵山市| 玉环县| 五华县| 武汉市| 南宁市| 濮阳市| 正镶白旗| 赤峰市| 铜梁县| 台州市| 客服| 上杭县| 静海县| 苍南县| 八宿县| 蕲春县| 灵台县| 黄冈市| 河北省| 马公市|