2016-06-24 4 views
1

は、私はあなたがこのような文字列を必要とすると仮定します。有効なPEM秘密鍵である文字列を生成するには? PEMプライベート証明書の場合

-----BEGIN PRIVATE KEY----- 
YzNhYjhmZjEzNzIwZThhZDkwNDdkZDM5NDY2YjNjODk3NGU1OTJjMmZhMzgzZDRhMzk2MDcxNGNhZWYwYzRmMg== 
-----END PRIVATE KEY----- 

だから何私がしたことだった。

$privateKey = '-----BEGIN PRIVATE KEY-----'; 
$privateKey .='\n'.base64_encodehash(('sha256','foobar')); 
$privateKey .='\n-----END PRIVATE KEY-----'; 

しかしopenssl_pkey_get_private($のPrivateKey)は偽ではなく、有効なリソースを返します。 。私はPEMがbase64の文字列であると仮定しました。私は何を間違えたのですか? (私はGoogleを介してこれを見つけました:http://www.cryptosys.net/pki/manpki/pki_pemstring.html

+0

[openssl_pkey_export](http://php.net/manual/en/function.openssl-pkey-export.php)を使用してみてください。 – wazelin

+0

これは何ですか: '$ privateKey。= '\ n' .base64_encodehash(( '' sha256 '、' foobar '));'これはプライベートキーとは何ですか?また、行の長さには制限があります。 OpenSSLは、初期のRFCの1つから長さを強制します。初期メールとプライバシー強化メールRFCを確認してください。 – jww

+0

PHPが文字列を暗号化する場合。 PEM形式のウェブサイトはありますか? – user95437

答えて

1

オブジェクトの種類ごとに異なるPEM形式があります。それに直面して、PEMは、BEGINとENDマーカー内に囲まれた基本64のエンコードされたデータです。 「BEGIN PRIVATE KEY」マーカーで始まるPEMファイルには、PKCS#8標準に準拠したbase64でエンコードされたデータが含まれています。特にRFC5208(https://tools.ietf.org/html/rfc5208)のセクション5を参照してください。通常は、これらのファイルを最初から作成することはありません。あなたはOpenSSLのようなライブラリやツールを使ってファイルを作成します。

関連する問題