亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將谷歌驗證簽名代碼(kotlin)轉換為PHP(laravel)

將谷歌驗證簽名代碼(kotlin)轉換為PHP(laravel)

PHP
千巷貓影 2022-08-05 16:12:54
我需要驗證簽名,這是谷歌開發人員Android api中的安全功能。他們有一個用kotlin編寫的工作示例。自動取款機。我正在嘗試轉換此代碼:val decodedKey = Base64.decode(encodedPublicKey, Base64.DEFAULT)val keyFactory = KeyFactory.getInstance("RSA")return keyFactory.generatePublic(X509EncodedKeySpec(decodedKey))已修復。我從谷歌得到它。encodedPublicKey我已安裝,目前我嘗試轉換上述代碼:phpseclib$decodedKey = base64_decode($encodedPublicKey);$x509 = new X509();$x509->loadX509($encodedPublicKey);$rsa = $x509->getPublicKey();return [$rsa, $x509];我發現這甚至不起作用。它不返回任何內容,而 kotlin 代碼返回許多解碼的密鑰,例如:base64_decode($encodedPublicKey)Base64.decode(encodedPublicKey, Base64.DEFAULT)D/IABUtil/Security: decodedKey 0 :48編輯kotlins 返回一個字節數組。我設法通過在php中使用來獲得相同的結果:Base64.decode(encodedPublicKey, Base64.DEFAULT)unpack()$decodedKey = unpack('c*', $decodedKey); // ByteArray
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

所以最后我用了開放的ssl。


$publicKey = env('BASE_64_ENCODED_PUBLIC_KEY');


$key = "-----BEGIN PUBLIC KEY-----\n" . chunk_split($publicKey, 64, "\n") . "-----END PUBLIC KEY-----";

$key = openssl_get_publickey($key);

if (false === $key) {

    return ["Could not get public Key"];

}


$verify = openssl_verify($originalJson, base64_decode($signature), $key, "sha1WithRSAEncryption");


將公鑰轉換為正確的格式非常重要。每行必須有 64 個字符。


查看完整回答
反對 回復 2022-08-05
  • 1 回答
  • 0 關注
  • 158 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號