操作:将Java生成的密钥字符串转为PHP能识别的pem格式的密钥。
Java生成的密钥主要是字符串;而pem格式密钥是以64位为一行,并且带有如下头和尾的文件格式,然后PHP再去取得相对应pem格式字符串。
pem格式密钥
-----BEGIN PUBLIC KEY-----
//64chars一行(多行)
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY-----
//64chars一行(多行)
-----END RSA PRIVATE KEY-----
Java密钥转为pem格式的PHP代码
$pem_key = format_secret_key($key, 'private');
/**
* 将字符串格式公私钥格式化为pem格式公私钥
* @param $secret_key
* @param $type
* @return string
*/
function format_secret_key($secret_key, $type) {
//64个英文字符后接换行符"\n",最后再接换行符"\n"
$key = (wordwrap($secret_key, 64, "\n", true)) . "\n";
//添加pem格式头和尾
if ($type == 'public') {
$pem_key = "-----BEGIN PUBLIC KEY-----\n" . $key . "-----END PUBLIC KEY-----\n";
} else if ($type == 'private') {
$pem_key = "-----BEGIN RSA PRIVATE KEY-----\n" . $key . "-----END RSA PRIVATE KEY-----\n";
} else {
echo('公私钥类型非法');
exit();
}
return $pem_key;
}