関数・クラス解説

openssl_seal

version:PHP 4 >= 4.0.4, PHP 5, PHP 7 (公式)

データをシール(暗号化)する

公式リファレンス

書式

openssl_seal ( string $data , string &$sealed_data , array &$env_keys , array $pub_key_ids [, string $method = "RC4" [, string &$iv ]] ) : int

説明

openssl_seal() は、ランダムに生成された秘密鍵 および指定した method を使用して data をシール(暗号化) します。このキーは、pub_key_ids を ID とする 公開鍵で暗号化されます。これは、暗号化されたデータを複数の受信者に 送信できることを意味します(この際、各受信者は送信側に公開鍵を 提供します)。各受信者は、暗号化されたデータとその受信者の 公開鍵で暗号化されたエンベロープキーを受け取る必要があります。

パラメータ

data
シールするデータ。
sealed_data
シール済みのデータ。
env_keys
暗号化したキーの配列。
pub_key_ids
公開鍵リソース ID の配列。
method
暗号化方式
警告 デフォルト値 ('RC4') はセキュアでない値です。 明示的にセキュアな暗号化方式を指定することを強く推奨します。
iv
初期化ベクトル。

返値

成功時にシール(暗号化)されたデータの長さ、エラー時に FALSE を返します。成功時には、暗号化されたデータが sealed_data に、エンベロープキーが env_keys に返されます。

サンプル

例1 openssl_seal() の例

// $data には、暗号化されるデータが含まれていると仮定 // 受信者の公開鍵を取得し、使用可能にする $fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r"); $cert = fread($fp, 8192); fclose($fp); $pk1 = openssl_get_publickey($cert); // 2 番目の受信者についても同様 $fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r"); $cert = fread($fp, 8192); fclose($fp); $pk2 = openssl_get_publickey($cert); // メッセージを暗号化。$pk1 および $pk2 の所有者のみが、$sealed を // データをそれぞれ $ekeys[0] および $ekeys[1] で復号化することが // 可能 openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2)); // キーをメモリから開放する openssl_free_key($pk1); openssl_free_key($pk2);

参考

  • openssl_open() - シール(暗号化)されたデータをオープン(復号)する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール