doushi3189 2015-09-15 21:55
浏览 220

使用PHP将DER格式的.key文件加载到PEM

I have a code that makes the transformation but need to do it with native PHP functions because it is not activated support for running exec:

exec("openssl pkcs8 -inform DER -in 'archivo.key' -out 'archivo.key.pem' -passin pass:'lacontrasena'");

Someone can help me translate this into native PHP functions? It can be openssl or a library.

//Updated

This is my code using der2pem function:

function der2pem($der_data) {
   $pem = chunk_split(base64_encode($der_data), 64, "
");
   $pem = "-----BEGIN PRIVATE KEY-----
".$pem."-----END PRIVATE KEY-----
";
   return $pem;
}
$keyfile = 'myFileDER.key';
$keyFileContent = file_get_contents($keyfile);
$pemContent = der2pem($keyFileContent);
file_put_contents('llavetemp.pem', $pemContent);

$private_key1 = openssl_pkey_get_private($pemContent);

var_dump($private_key1);

The var_dump return boolean false

  • 写回答

2条回答 默认 最新

  • duanjunao9348 2015-09-15 21:58
    关注

    See dan's comment on php.net:

    Use the following code to convert from DER to PEM and PEM to DER.

    <?php
    $pem_data = file_get_contents($cert_path.$pem_file);
    $pem2der = pem2der($pem_data);
    
    $der_data = file_get_contents($cert_path.$der_file);
    $der2pem = der2pem($der_data);
    
    function pem2der($pem_data) {
       $begin = "CERTIFICATE-----";
       $end   = "-----END";
       $pem_data = substr($pem_data, strpos($pem_data, $begin)+strlen($begin));   
       $pem_data = substr($pem_data, 0, strpos($pem_data, $end));
       $der = base64_decode($pem_data);
       return $der;
    }
    
    function der2pem($der_data) {
       $pem = chunk_split(base64_encode($der_data), 64, "
    ");
       $pem = "-----BEGIN CERTIFICATE-----
    ".$pem."-----END CERTIFICATE-----
    ";
       return $pem;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!