ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP 中 firebase/php-jwt RS256 公私钥生成指南

2022-06-27 14:31:08  阅读:352  来源: 互联网

标签:... KEY pri jwt pem firebase ----- key php


所有关于 openssl_sign(): supplied key param cannot be coerced into a private/public key、Algorithm not allowed 等错误
按照文章来一遍,基本就能解决了

GitHub 用多了,第一反应用 puttygen.exe 这个程序来生成,得到 id_rsa 和 id_rsa.pub

然而,这货并没有什么卵用…

当然,我们生成一个 Private Key 后,通过如图导出一份私钥后还是能用的

 

 

但是…Public Key 就没法用了,因为这玩意儿吧,要讲究格式…后来才发现除了 OpenSSH,还有一个 OpenSSL

所以,我们应当使用 OpenSSL 来生成…

工具去哪儿找?https://git-scm.com/downloads,下一个 Git 安装上就行了

便携版需要 手动 配置一下环境变量,除了 \PortableGit\bin 这个要添加到 Path,\PortableGit\usr\bin 这个也需要

其实很简单了,以 Windows 举例,桌面按下 Shift + 鼠标右键打开 cmd(命令窗口,Win 10 为 PowerShell)

# 2048 这个长度可根据实际情况调整
openssl genrsa -out pri_key.pem 2048

完成后桌面就会出现 pri_key.pem 文件,撸开看看,开头和结尾一定是

-----BEGIN RSA PRIVATE KEY-----
...省略...
-----END RSA PRIVATE KEY-----

这玩意儿在 firebase/php-jwt 中就能直接用了,参考原文:firebase/php-jwt: PEAR package for JWT

接着再输入一句命令拿到公钥就能玩儿了:

openssl rsa -in pri_key.pem -pubout -out pub_key.pem

同样的,在桌面会再多出一个 pub_key.pem 文件,开头结尾一定是:

-----BEGIN PUBLIC KEY-----
...省略...
-----END PUBLIC KEY-----

网上说的什么 J8 香蕉船 生成 PKCS#8 编码公钥 完全不需要好吗。。。

就是这句命令:【无需执行】

openssl pkcs8 -topk8 -inform PEM -in pri_key.pem -outform PEM -out pkcs8_pri_key.pem –nocrypt

因为生成后,格式是这样的:

-----BEGIN ENCRYPTED PRIVATE KEY-----
...省略...
-----END ENCRYPTED PRIVATE KEY-----

最后使用,参照原文链接撸码就行:(注意格式和下方一致)

private $privateKey = <<<EOD
-----BEGIN RSA PRIVATE KEY-----
// 中间内容自行填写
-----END RSA PRIVATE KEY-----
EOD;

private $publicKey = <<<EOD
-----BEGIN PUBLIC KEY-----
// 中间内容自行填写
-----END PUBLIC KEY-----
EOD;

 

 

https://maxsky.blog.csdn.net/article/details/80045283

标签:...,KEY,pri,jwt,pem,firebase,-----,key,php
来源: https://www.cnblogs.com/init-007/p/16415970.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有