0
私は、指定されたキーで文字列に署名するSSLコマンドを持っています: openssl dgst -sha256 -hex -sign key.pem data.txt
。私はそれをPHP関数にどのように変換できるのか知りたいです。 PHPの同等のものは、次のようなものでなければなりません: openssl_sign($data, $signature, $key, OPENSSL_ALGO_SHA256)
。しかし、unixコマンドは16進数でシグネチャを出力しますが、PHPコマンドが出力するものは実際には得られません。SSLコマンドをPHPに翻訳する
ありがとうございます!私はPHPで有効なキーを生成するのに少し問題があります。私は 'base64_encode(hex2bin($ key))'コマンドを使います。出力例: 'lnFOGfdh2pRSCmjTDJlD5QTnyRGmmFgg01WpT2mI8Ic ='。しかし、これは上記のopenssl_sign関数では受け入れられません。しかし、私はSSLを使用して新しい秘密鍵を生成すると、動作します。 – user2298995
署名をファイルに保存していますか?その場合、opensslコマンドは実際の16進数の出力の前に 'RSA-SHA256(data.txt)='を入れます。 PHPソリューションで同じことをする必要がありますか? – Nick
ご返信ありがとうございます。私は秘密鍵の作成について言及しましたが、署名に署名しませんでした。ですから、問題は、指定された文字列から有効なキー(openssl_signで受け入れられる)を生成する方法です。私の場合、 'base64_encode(hex2bin($ string));'を使ってみましたが、出力がopenssl_signで受け付けられないようです。 – user2298995