2016-12-08 4 views
0

jdbcのデータベースでパスワードを暗号化するためのデータベースには、無関係な方法はありますか? 私たちはJava 8を使用しています。データベースに依存しないデータベースの暗号化

どのデータベースを使用するのか知っていればそれができますが、複数のプラットフォームを使用している顧客をサポートするには、無関係な方法が必要です。

編集済み追加: たとえば、mysqlには、SQL文内で使用できるこれらの文字列関数があります。そして私はそれを不愉快にする方法を見つけていないと推測しました。

Name   Description 
AES_DECRYPT() Decrypt using AES 
AES_ENCRYPT() Encrypt using AES 
DECODE()  Decodes a string encrypted using ENCODE() 
DES_DECRYPT() Decrypt a string 
DES_ENCRYPT() Encrypt a string 
ENCODE()  Encode a string 
+0

あなたは内部の暗号化されたデータを持つ列について話していますか? – Kayaman

+0

はい、テーブル内に暗号化されたパスワードを保存します – WendyG

+2

[暗号化パスワードを保存しない](http://blog.moertel.com/posts/2006-12-15-never-store-passwords-in-a-database .html)。決して! –

答えて

0

私の編集のための例のための狩りの後、私は以前の投稿でこの答えを見つけました。もちろん

、あなたは、データベース内 キーを保存したり、どこかのデータベースは、あなたが は、セキュリティのための多くをやっていないへのアクセス権を持っていると仮定して、独自のルーチンを記述する場合。暗号化されていないパスワードをネットワーク経由で送信するのは悪いですが、データベースに暗号化されていない のパスワードを格納するのは一般にはるかに悪いです(データに を解読するキーにアクセスできるデータベースに の解読方法がある場合は暗号化されたパスワード) 。一般に、データベースからデータを盗むのはずっと簡単です パスワードを見つけるために、ネットワーク上でデータを盗聴するよりも簡単です。

Encrypt/Decrypt Password in Oracle Function

3

業界標準のベスト・プラクティスを使用して、あなたは、Base64でエンコードされたパスワードのか、通常のvarchar型/テキスト列で16進文字列として塩漬けハッシュを保存することもできます。暗号化はJava側で行う必要がありますが、最終的には表にStringを格納するだけです。これは、基本的なJDBC操作であるため、データベースには無関心でなければなりません。

関連する問題