中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么在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

治多县| 喜德县| 手游| 共和县| 类乌齐县| 安丘市| 宜兰县| 上林县| 凭祥市| 公主岭市| 阿尔山市| 丘北县| 崇义县| 天镇县| 淮阳县| 本溪市| 灌阳县| 翼城县| 湄潭县| 正定县| 长泰县| 堆龙德庆县| 黄陵县| 景宁| 海原县| 景谷| 胶南市| 开化县| 阜南县| 绥棱县| 高淳县| 海晏县| 镇坪县| 九江县| 鹿泉市| 华坪县| 固始县| 麟游县| 乌兰浩特市| 营口市| 简阳市|