Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将base64导出的公钥转换为可以在php中使用的公钥?_Php_Swift_Pki - Fatal编程技术网

如何将base64导出的公钥转换为可以在php中使用的公钥?

如何将base64导出的公钥转换为可以在php中使用的公钥?,php,swift,pki,Php,Swift,Pki,我能够导出在iOS中生成的公钥并将其转换为base64: var dataPtr:Unmanaged<AnyObject>? let query: [String:AnyObject] = [ kSecClass: kSecClassKey, kSecAttrApplicationTag: "com.example.site.public", kSecReturnData: kCFBooleanTrue ] let qResult = SecItemCopyM

我能够导出在iOS中生成的公钥并将其转换为base64:

var dataPtr:Unmanaged<AnyObject>?
let query: [String:AnyObject] = [
    kSecClass: kSecClassKey,
    kSecAttrApplicationTag: "com.example.site.public",
    kSecReturnData: kCFBooleanTrue
]
let qResult = SecItemCopyMatching(query, &dataPtr)

// error handling with `qResult` ...

let publicKeyData = dataPtr!.takeRetainedValue() as NSData

// convert to Base64 string
let base64PublicKey = publicKeyData.base64EncodedStringWithOptions(nil)

这是正确的方向吗?我知道数据的大小是270。我对PKI有些陌生,希望您能提供帮助。

如果您的pub密钥与X.509兼容,您可以使用PHP进行如下解析:

$keydata = base64decode($_GET['base64PublicKey']);
$info = openssl_x509_parse($keydata,true);
print_r($info);

PHP包含一个库,用于

证书采用DER编码的X.509格式?我想是的,但我不能完全确定。这似乎表明:谢谢你的帮助!事实证明,
publicKeyData.base64EncodedStringWithOptions(nil)
返回的是非base64字符——特别是斜杠和空格,因此base64_decode()返回false。一旦我通过了,我就可以测试你的代码了。
$keydata = base64decode($_GET['base64PublicKey']);
$info = openssl_x509_parse($keydata,true);
print_r($info);