CryptとDESは古い暗号であるため、使用しないでください
昔ながらのDESは廃止されたアルゴリズムです。 AES128と実際に比較することはできません。これは、SHA256ハッシュがMD5ハッシュよりも大きいと不平を言うようなものです。そうですが、攻撃者の速度をしばらく低下させる可能性があるのはそのうちの1つだけです。 DESは、1999年でも弱いと広く見なされていました また、新しいアプリケーションでは使用しないでください。使用しないでください。
基本的にDESを使用してデータを暗号化するのは時間の無駄なので、「可能な限り最小のデータサイズを提供する」暗号化方法を探すのは良い考えではないと思います。 ROT13(シーザー暗号)を使ってみませんか? 「暗号化された」結果は入力と同じサイズです。3歳の子供が暗号化を破ることができるのは残念です。
暗号化 似たようなヴィンテージです。古い
Cryptは一方向のハッシュです
暗号化されたデータを復号化する方法がわからない場合: crypt は暗号化アルゴリズムではなく、暗号化ハッシュ関数
です。 または「一方向ハッシュ」。保存されている
サイズに対応
適切な暗号化機能を使用して、サイズの増加に対応してください。 bf
またはaes128
合理的に使用できる最も弱いものです。
個人的には、DBではなくアプリで暗号化/復号化を行うことを好みます。 DBで行われた場合、キーはpg_stat_statements
によって明らかにされます。 、log_statement
によるログ またはエラーなど。キーが保存されたデータとまったく同じ場所にないことをお勧めします。
ほとんどのプログラミング言語には、使用できる優れた暗号化ルーチンがあります。
暗号化する内容、理由、要件、脅威などについて実際に説明していないため、これ以上アドバイスを提供するのは困難です。
パスワード?
パスワードを保存している場合は、おそらく間違っています。
-
可能であれば、他の誰かに認証を任せてください:
-
インターネット用のOAuthまたはOpenID
-
イントラネット用のSSPI、Kerberos / GSSAPI、Active Directory、LDAPバインド、SASL、HTTPDIGESTなど
-
-
本当に自分で認証を行う必要がある場合は、パスワードにソルトを追加して結果をハッシュします。ハッシュとソルトを保存します。パスワードを比較する必要がある場合は、ユーザーからの新しいプレーンテキストを、保存されているハッシュに使用したのと同じソルトでソルトし、新しいパスワード+ソルトをハッシュして、ハッシュが保存したものと同じかどうかを確認します。もしそうなら、彼らは正しいパスワードを与えました。
-
ほぼ確実に、クリアテキストのパスワードを回復する必要はありません。代わりに、安全なパスワードリセットを実装してください。本当に、本当に必要な場合は、aesのような適切に安全なアルゴリズムを使用して暗号化し、キーの保存と管理について慎重に検討してください。 pgcryptoを使用したキーの保存/管理については、SOに関する他の投稿を参照してください。
参照: