対称暗号化で OpenSSL を介して AES を使用する方法の多くの例を見てきました。しかし、非対称暗号化を使用しています。私の webapp には、公開鍵で暗号化された機密データが保存されています。これは、管理者が秘密鍵のパスフレーズを提供できる場合にのみ、後で秘密鍵で復号化されます。
私の実装はうまく機能していますが、非常に小さな入力がかなり大きな暗号化結果を生成することに気付きました。たとえば、16 文字の入力は 288 バイトの暗号化になります (元の 16 文字に復号化されます)。これらの暗号化された結果はデータベース テーブルに格納されるため、入力サイズにはるかに近い暗号化された値を実現したいと考えています。予測可能な保管長も望まれます。
RSA 公開鍵/秘密鍵を使用していますが、PHP の OpenSSL 実装はデフォルトでどの暗号を使用していますか? 公開鍵/秘密鍵を使用するときに暗号を指定する方法の例は 1 つも見つかりませんでした。openssl_public_encrypt関数では、暗号定数の 1 つを指定できません。pub/pri キーが生成されるときに ( openssl_pkey_newを使用して) 何らかの形で暗号を指定することになっていますか?