関数・クラス解説
openssl_sign
version:PHP 4 >= 4.0.4, PHP 5, PHP 7 (公式)署名を生成する
公式リファレンス
書式
openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] ) : bool
説明
openssl_sign() は、指定した data の署名を作ります。 priv_key_id で指定した秘密鍵を使用して、暗号のデジタル署名を生成します。 data 自体は暗号化されないことに注意してください。
パラメータ
- data
- 署名したいデータの文字列。
- signature
- 成功した場合、署名が signature に格納されます。
- priv_key_id
- resource - openssl_get_privatekey() が返す鍵。 string - PEM フォーマットの鍵。
- signature_alg
- int - いずれかの 署名アルゴリズム。 string - openssl_get_md_methods() が返す文字列 ("sha256WithRSAEncryption" や "sha384" など)。
返値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
サンプル
例1 openssl_sign() の例
// $data に署名するデータが含まれていると仮定
// ファイルから秘密鍵を取得して準備
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");
// 署名を計算
openssl_sign($data, $signature, $pkeyid);
// メモリからキーを開放する
openssl_free_key($pkeyid);
例2 openssl_sign() の例
// 署名したいデータ
$data = 'my data';
// 新しい秘密鍵と公開鍵を作成
$new_key_pair = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($new_key_pair, $private_key_pem);
$details = openssl_pkey_get_details($new_key_pair);
$public_key_pem = $details['key'];
// 署名を作成
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);
// それらを保存
file_put_contents('private_key.pem', $private_key_pem);
file_put_contents('public_key.pem', $public_key_pem);
file_put_contents('signature.dat', $signature);
// 署名を検証
$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
var_dump($r);
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール