php设置pem,php – 如何将OpenSSH公钥文件格式转换为PEM
解:
function len($s)
{
$len = strlen($s);
if ($len < 0x80) {
return chr($len);
}
$data = dechex($len);
$data = pack('H*', (strlen($data) & 1 ? '0' : '') . $data);
return chr(strlen($data) | 0x80) . $data;
}
function openssh2pem($file)
{
list(,$data) = explode(' ', trim(file_get_contents($file)), 3);
$data = base64_decode($data);
list(,$alg_len) = unpack('N', substr($data, 0, 4));
$alg = substr($data, 4, $alg_len);
if ($alg !== 'ssh-rsa') {
return FALSE;
}
list(,$e_len) = unpack('N', substr($data, 4 + strlen($alg), 4));
$e = substr($data, 4 + strlen($alg) + 4, $e_len);
list(,$n_len) = unpack('N', substr($data, 4 + strlen($alg) + 4 + strlen($e), 4));
$n = substr($data, 4 + strlen($alg) + 4 + strlen($e) + 4, $n_len);
$algid = pack('H*', '06092a864886f70d0101010500'); // algorithm identifier (id, null)
$algid = pack('Ca*a*', 0x30, len($algid), $algid); // wrap it into sequence
$data = pack('Ca*a*Ca*a*', 0x02, len($n), $n, 0x02, len($e), $e); // numbers
$data = pack('Ca*a*', 0x30, len($data), $data); // wrap it into sequence
$data = "\x00" . $data; // don't know why, but needed
$data = pack('Ca*a*', 0x03, len($data), $data); // wrap it into bitstring
$data = $algid . $data; // prepend algid
$data = pack('Ca*a*', 0x30, len($data), $data); // wrap it into sequence
return "-----BEGIN PUBLIC KEY-----\n" .
chunk_split(base64_encode($data), 64, "\n") .
"-----END PUBLIC KEY-----\n";
}
php设置pem,php – 如何将OpenSSH公钥文件格式转换为PEM相关推荐
- JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
http://blog.csdn.net/zhouyuqwert/article/details/8627952 一.DER编码密钥对 先说下DER编码,是因为JCE本身是支持DER编码密钥对的解析的 ...
- java der pem_JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
一.DER编码密钥对 先说下DER编码,是因为JCE本身是支持DER编码密钥对的解析的,可以参见PKCS8EncodedKeySpec和X509EncodedKeySpec. DER编码是ASN.1编 ...
- 使用SecureCRT设置linux系统登录的ssh公钥认证
使用SecureCRT设置linux系统登录的ssh公钥认证 linux系统环境:CentOS 5.8 1.修改ssh配置文件/etc/ssh/sshd_config RSAAuthenticatio ...
- php 公钥格式转换,如何把OpenSSH公钥转换成OpenSSL格式
<如何把OpenSSH公钥转换成OpenSSL格式>要点: 本文介绍了如何把OpenSSH公钥转换成OpenSSL格式,希望对您有用.如果有疑问,可以联系我们. 首先看看OpenSSL工具 ...
- efs.mbn_在AIX 6.1.0,TL 4上使用EFS配置OpenSSH公钥认证
什么是EFS? 通常,AIX上的加密文件系统(EFS)支持使系统上的各个用户可以加密他们的数据,也可以通过密钥保护来访问它们. 用户将能够设置密钥并为EFS分配默认密钥. 这些密钥存储在受密码保护的密 ...
- android 公钥pem编码,如何将PEM编码的Elliptic Curve公钥加载到Bouncy Castle中?
我有一个PEM编码的Elliptic Curve公钥,我正试图加载到Bouncy Castle中,到目前为止我尝试的所有内容都失败了.这是我正在尝试加载的密钥的示例: -----BEGIN PUBLI ...
- 证书 keystore 转换为 pem再提取 证书/私钥
今天遇到一个问题,让我这边提供ssl证书的 pem和key.但是查看了tomcat的配置发现只有一个tomcat.keystore文件 配置如下 <Connector port="44 ...
- iOS RSA加密 以及生成公钥 秘钥 pem文件
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- pem格式证书编码 x509_公钥证书编码解读
一.文件编码 PEM (Privacy Enhancement Message),定义见 结构组成 == {header} body {tail} 示例 -----BEGIN PUBLIC KEY-- ...
最新文章
- 安装NodeJS环境报错
- 你知道什么是AVL树吗?
- android studio多页面滑动,Android Studio之多个Activity的滑动切换(二)
- ASP.NET Core中的OWASP Top 10 十大风险-SQL注入
- php判断数组下标,php判断json或者数组格式与给定格式是否一致
- cmake mysql 编译参数_Cmake-MySQL编译参数说明
- NLP论文 -《Distributed Representations of Sentences and Documents》-句子和文档的分布式表示学习
- 浅析MySQL二进制日志
- ubuntu arm qt_Cyclone V SOC(ARM+FPGA)开发文档_之开发流程详解
- 安装PhantomJS
- 为什么阿里巴巴不建议MySQL使用Text类型?
- 通过微软官方工具卸载office
- AD高级培训PPT总结
- 详解Java 12新特性:switch表达式
- 响应时间与滤波器截止频率的关系
- android studio 编译Telegram源码
- 60秒Dapp快讯 | 全球公有链技术评估:以太坊在应用性上排第一;蚂蚁金服区块链试水医疗电子票据
- java程序员必读书籍
- DB 查询分析器7.01 新增的保存执行结果到多个文件功能
- 原子钟(atomic clock)
热门文章
- LeetCode问题7
- 【Debug探索团队公告】Debug探索团队,邀请您的加入
- Ponemon Institute告诉你,大数据正在勾搭网络安全
- Udp、Tcp、Http Socket
- 数字IC后端设计实现流程之floorplan及powerplan规划
- CXF之jaxws:endpoint对spring bean的引用
- Jquery获取iframe中的元素
- java jsonobject date_如何将Json Passed Date Value分配给Java Date Object
- test title
- python 文字处理系统_详解Python中的文本处理