質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.35%

  • Java

    10454questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • セキュリティー

    364questions

    このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

  • 暗号化

    60questions

    ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

Javaでの暗号化について

解決済

回答 2

投稿 2017/11/24 18:22

  • 評価
  • クリップ 1
  • VIEW 92

Megapix96

score 1

前提・実現したいこと

パスワードの保管の暗号化。

発生している問題・エラーメッセージ

String encryption(String password) でストレッチングなどを含め暗号化出来るとしましょう。
DBのファイルが何者かによって盗まれました。
そんなときに暗号化した意味があるのだと思うのですが、これはencryptionメソッドの中身が見れてしまうとequalsで一発な気がするんですが
例: 
dbから入手したパス.equals(encryption("予測するパス"))
何度ストレッチングしてもSaltをかけてもそれはencryptionメソッドの内容が分からないってこと前提ですよね。
流石にDB盗まれるくらいならソースコードも読めるんじゃないかと思うのですが(個人の見解)そこら辺はどうなんですかね
また、どのような暗号化方法がセキュリティに良いでしょうか。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+4

ご指摘の通り、予測したパスワードが正しいかどうかは、一発で分かります。
なので、以下の両方により、正しいパスワードに行き当たるまでの「時間稼ぎ」をするわけです。「絶対に分からない」ことを目指すものではありません。

  • パスワードそのものを予測困難なようにできるだけ長く複雑なものにする
  • ストレッチングにより、パスワードの正誤判定に「時間が掛かる」ようにする

投稿 2017/11/24 19:08

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/24 22:06

    分かりやすい回答をありがとうございます。
    ideoneで10000回ストレッチングするプログラムを作り計測してみたのですが結果が200ミリ秒くらいで
    非同期化すると解析にはそこまで時間はかからないと思うくらいのタイムなんで
    ストレッチングを実用的にするにはかなりの回数やらないといけないようです...
    まあなんとか頑張ってみます^^

    キャンセル

0

それはencryptionメソッドの内容が分からないってこと前提ですよね

ここが違います。encryptionメソッドの内容が分かっても大丈夫です。というより、encryptionメソッドの内容が分かっていて多くの人によって検証されているほうがむしろ安全です。

また、どのような暗号化方法がセキュリティに良いでしょうか。

多くの人によって検証されている暗号化方法がよいでしょう。 http://www.cryptrec.go.jp/list.html とか。

投稿 2017/11/24 19:12

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.35%

関連した質問

  • 解決済

    Javaのsplitで文字分割する際の挙動の変化

    文字列をsplitで配列すると、下記のif文が通らなくなります。 間違っている点はありますか? String str = "aiueo"; String[] ary = str.

  • 解決済

    java

    getActionCommandは解決できないかフィールドではありません というエラーが出るのですが、何が原因なのでしょうか? 今私が書いているプログラムを載せておきます。 コ

  • 解決済

    SearchViewの文字列を比較する

    SearchViewの文字列を比較したいのですが、どのようにすればいいでしょうか? 以下のようにしたのですが、正しく比較ができていません。 if (searchView.getQ

  • 解決済

    editText の文字取得し、ifで比較してトーストを出したい

    getText()を用いて、String型で入力文字を取得しています。 取得した文字ともともと用意してあるString型も文字列と比較して、同じだったら”正解”、異なっていたら”不

  • 解決済

    読み込ませたファイルをクイックソートで並び替える

    1.入力ファイルパスの入力要求 2.1でのパスのファイルを読み込み配列  に格納 3.並び替え方法の指定 4.指定された方法の分岐 5.配列に格納されてい

  • 解決済

    java 電卓プログラム

    前回から少しだけ前進しましたが、まだ壁にぶつかっているのでご助力お願いいたします。 表記イメージとしては、実行するとまずは下記が表示されます。  C\JAVA>java D

  • 解決済

    コマンドライン引数による条件分岐

    前提・実現したいこと コマンドライン引数の条件分岐で分からないことがあります。 該当のソースコード public class Test { //System.out.p

  • 解決済

    JSPでtextboxに入力されていない場合を判定するには

    JSPを使用し、新しい商品を登録するプログラムを作成しています。 商品名や単価などを入力するtextboxを作り、そのなかで空欄が一つでもある場合には、「エラー.html」に遷

同じタグがついた質問を見る

  • Java

    10454questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • セキュリティー

    364questions

    このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

  • 暗号化

    60questions

    ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。