オブジェクト指向とは

プログラム

2020/9/26

ポリモーフィズムとは

ポリモーフィズム(多態性) ポリモーフィズム(英:Polymorphism)とは、オブジェクト指向の考え方の一つで、ある1つの関数(メソッド)の呼び出しに対し、オブジェクト毎に異なる動作をすることをいいます。 同じ関数なのに違う動きをする?イメージが湧かない・・・ 異なる動作を同じ処理で実現するのがポリモーフィズムです。 それでは、もう少し具体的に見ていきましょう。 スポンサーリンク ポリモーフィズムのイメージ例 例えば、動物クラスに「cry」(鳴く)という関数(メソッド)があるとします。 そして、動物ク ...

2020/9/6

LIFO(Last-In First-Out)とは

LIFO(後入れ先出し) LIFOは、Last-In First-Outを表す頭文字であり、後入れ先出しとも呼ばれています。 複数のデータを取り扱う際、後に入れたデータを先に取り出すという方式です。また、最初に入れたデータを後に取り出す言葉である FILO(First In, Last Out)は LIFOの同義語です。 後に入れたデータから先に取り出すので、古いデータ程、長く残るのが特徴です。   コンピュータ上でデータの集まりを取り扱うデータ構造で、LIFOの方式を採用しているのが「スタック ...

待ち行列

2020/9/6

FIFO(First-In First-Out)とは

FIFO(先入れ先出し) FIFOとは、First-In First-Outを表す頭文字であり、先入れ先出しとも呼ばれています。 複数のデータを取り扱う際、先に入れたデータを先に取り出すという方式です。   FIFOは「キュー(queue)」の動作原理を表すものです。 キューは、お店に並ぶ待ち行列のように、先にキューに格納されたデータから順番に取り出されます。 以下の図例では、「データ1」「データ2」「データ3」「データ4」「データ5」の順番にキューに格納しています。そして、キューから取り出す時 ...

2020/9/4

スタック(stack)とは

スタック(stack) スタックとは、データ構造の一つ(データを格納する入れ物)で、入ってきたデータを順番に格納し、最後に格納したデータから順に取り出す、 後入れ先出し(LIFO:Last-In First-Out)方式のデータ構造です。 上記はスタックのイメージ図です。スタックに入れる時は、順番に格納していき、スタックから取り出す時は、最後に格納したデータから順番に取り出します。 最後に乗った人が最初に降りる「エレベータ」と同じイメージです。   スタックと似たようなデータ構造に「キュー(qu ...

待ち行列

2020/9/5

キュー(queue)とは

キュー(queue) キューとは、データ構造の一つ(データを格納する入れ物)で、入ってきたデータを順番に格納し、先に格納したデータから順に取り出す、 先入れ先出し(FIFO:First-In First-Out)方式のデータ構造です。 上記図は、キューのイメージです。お店などに並ぶ待ち行列と似ていることから「待ち行列」とも呼ばれています。 キューに追加する(enqueue) キューに追加する操作ことを、エンキュー(enqueue)といいます。 以下は、エンキュー(enqueue)の動作イメージです。 「デ ...

フレームワークとは

2020/8/24

フレームワークとは

フレームワーク(framework) フレームワークとは、「枠組み」「骨組み」「構造」を意味する言葉で、システム開発をする際の土台となる部分であり、システム開発の効率を上げるために用意されたものです。 スポンサーリンク なぜフレームワークが必要なのか? 例えば、Webアプリケーションを開発するとします。同じ言語を使用していても、フレームワークを利用しないと 開発担当者により、作り方がバラバラになる可能性があります。 また、フレームワークがないので、一から作りこむ必要があります。 その結果、ソースコードの書 ...

2020/8/24

【パスワード】ストレッチングとは

ストレッチング ストレッチングとは、パスワードのハッシュ値を総当り攻撃(ブルートフォース攻撃)などから推測されないようにするために、ハッシュ値への計算を数千回~数万回繰り返し行うことです。 ストレッチングの必要性 コンピュータの進化は早く、計算する処理速度も向上しているため、弱いパスワードや文字数が長くないパスワードなどは、総当り攻撃(ブルートフォース攻撃)などで十分な時間をかければ元のデータを推測されてしまう危険性があります。 この時間を事実上不可能といえる時間にするためにストレッチングを実施します。 ...

鍵

2020/8/24

【パスワード】bcryptとは

bcryptとは bcryptとは、Blowfish暗号を基盤としたパスワードハッシュアルゴリズム(暗号学的ハッシュ関数)です。 一般的にパスワードは、元に戻すことが困難である「一方向性関数」の性質を持つハッシュ関数を用い値ハッシュ値で保管します。 次の図は、パスワードを「平文」「暗号文」「ハッシュ値」で保管していた際のイメージ図です。 「平文」は漏洩したらパスワードが盗まれてしまいます。「暗号文」は暗号化されていますが、「暗号文」を復号する「鍵」があればパスワードを解読することができます。パスワードが情 ...

ログイン

2020/8/24

【パスワード】ソルト(Salt)とは

ソルト(Salt) ソルトとは ソルト(Salt)とは、パスワードなどをハッシュ値へと変換する際に、パスワードに付与するランダムな文字列のことです。 仮にハッシュ値で保存しているパスワードが外部に漏洩した場合、元に戻すことが困難であるハッシュ値でも、弱いパスワード(推測しやすい文字や短いパスワードなど)であれば、十分な時間をかければ元のデータを推測されてしまう危険性があります。 そこで、ソルトと呼ばれるランダムな文字列をパスワードに連結してから、ハッシュ値へと変換します。 ソルトを付与することで、レインボ ...

2020/8/24

MD5(Message Digest 5)とは

MD5(Message Digest 5) MD5とは MD5(エムディーファイブ)とは、Message Digest 5の略でハッシュ関数の一つです。128ビット(16進数では32桁)のハッシュ値を生成します。 1991年にロナルド・リベストによって開発されたハッシュ関数で、前規格であるMD4の安全性を向上させた規格です。 上記図はMD5を利用してハッシュ値を生成する例です。ハッシュ関数により得られたデータのことを「ハッシュ値」と呼びます。 MD5の脆弱性 ハッシュ関数は、入力データが同じであれば、必ず ...

© 2020 ITを分かりやすく解説