关于rsa公钥格式的处理,一行纯内容进行换行格式化

  • Post author:
  • Post category:其他
  • Post comments:0评论

最近在开发百度小程序,他的平台公钥是纯字符串,公钥的内容,没有rsa文件的头(—–BEGIN PUBLIC KEY—–)和尾部分—–END PUBLIC KEY—–

但是 PHP函数 openssl_verify 是要接受 如下格式的公钥内容的

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNA6DCBiQKBgQCwbR2M2efjbuttNoeCjE19ZBqA
z3Q2BWxdNeQfC7v3434344OI54JB28H5DX1H44CFRgodYn6oLzI4zh3kG2XqwAOGf4
FOZlkD1nkDhlY8od4mUJvEr1XwSz+V2W0aNyONBe29NdWScMQlTxhxf15NaHHSM1l
RkiOOOhNXgLLXOXF4QID3AQAB
-----END PUBLIC KEY-----

  

2、解决办法
使用 wordwrap 函数进行固定长度换行处理,头尾连接对应的 —–BEGIN PUBLIC KEY—– 和 —–END PUBLIC KEY—–
代码如下:

$publickey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYwzcpD6YQQu3ddK147cjBZoqRupP56FJIH2Rr8ShLawh1fbmHRHbrtfKsPE7jJS6UXEI0LncqUydbVKnOt9q1Dt+W8mEXZxzArmv5NuaHI7+Rx2ehphk913bR531CPm/+nUfLQN/9JT+2MVLMRMQ5P2b3fH+8h+ndvKhHQGetXwIDAQAB'; 
$publickey = "-----BEGIN PUBLIC KEY-----\n" . 
wordwrap($publickey, 64, "\n", true) 
. "\n-----END PUBLIC KEY-----";

 最终返回的就是拼接好并且按照格式换行的内容了 

发表评论