収入UPの転職を目指す方へ

【Java入門】パスワード決めのヒントになるかも?乱数(random)の作り方

  • 2018/02/03
【Java入門】パスワード決めのヒントになるかも?乱数(random)の作り方

最近、オンラインショップ利用者のアカウントが盗まれ、金銭的な被害を受ける事件が発生しています。被害に遭わないようにするためには、推測されにくいパスワードを設定することが欠かせません。Javaで乱数を生成する方法を知っていれば、パスワード決めのヒントになるかもしれません。今回は、乱数の作り方についてご紹介します。

IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。

目次

乱数とは?

乱数とは?

規則性を持たず、予測が不可能な数値を乱数(random number)と呼びます。一言でいえば、乱数とは「でたらめな数」です。
乱数は暗号アルゴリズムやゲームのランダム要素、数値計算法の1つであるモンテカルロ法など、さまざまな分野で利用されています。
Javaの場合、MathクラスやRandomクラスに乱数を生成するメソッドが用意されており、これらを呼び出して乱数を生成することが可能です。

ただし、これらのメソッドによって生成される乱数は、「シード(seed:種)」に基づいて生成され、純粋な乱数ではありません。こうした乱数を疑似乱数と呼びます。シードの値が同じだった場合、生成される乱数は同じ数値・文字列の並びとなるため、そのままパスワードに設定することは控えましょう。

乱数の作り方(1)

乱数の作り方(1)

Mathクラスは指数関数や三角関数といった数値処理のためのメソッドを含んでいますが、そのうちの1つのメソッドrandom()は、0以上1未満の範囲でdouble型の乱数を生成します。 0以上100未満の範囲で乱数が欲しいときは100倍するなど、必要に応じて調整しましょう。

【プログラム例】

public class MathRandom{
 public static void main(String[] args){
  double num = Math.random();  //乱数を生成
  System.out.println(num);  //乱数を出力
 }
}

乱数の作り方(2)

乱数の作り方(2)

Mathクラスのrandomメソッドはdouble型の乱数を生成しますが、状況によってはint型の乱数が欲しいときも少なくありません。
このようなときはRandomクラスのnextIntメソッドを使います。
一方、nextInt()は引数に整数値を指定した場合、0以上かつ指定した整数値未満の整数値を返します。引数を指定しない場合は、int型が取りうる範囲で整数値を返します。

【プログラム例】

import java.util.Random;  //java.util.Randomのインポート
public class RandomNumber{
 public static void main(String[] args) {
  Random rand = new Random();  //Randomクラスをインスタンス化
  int num = rand.nextInt(100);  //0以上100未満の整数値を生成
  System.out.println(num);  //乱数の出力
 }
}

おわりに

乱数はパスワードのセキュリティを高めたり、ゲームに意外性を持たせたりする場面で重要な役割を果たしています。今回は乱数の基本として2つのメソッドを紹介しましたが、実際に乱数を生成させてみると、偏りがあることに気付くでしょう。乱数に興味を持った方は、改善策を考えてみることをおすすめします。
なお、より安全な乱数を生成するメソッドを提供するクラスとして、SecureRandomクラスが用意されています。今回紹介したメソッドとSecureRandomクラスのメソッドで、乱数の精度を比較してみるのも面白いでしょう。

インターネット・アカデミーでは、これからJavaプログラミングを学ぶ方から既にプログラマー・エンジニアとして働いている方まで、それぞれのレベルに合わせた指導が受けられます。「プログラミングを身に付けたい」「ワンランク上を目指したい」という方は、Java講座の受講をおすすめします。

関連講座

Java講座 ITエンジニア総合コース

Web業界への就転職・キャリアアップを成功させたいと考えている方へ
1995年開校、日本初のWebデザイン・プログラミングスクールインターネット・アカデミー

自分にぴったりのコースが見つかる

プログラミングスクールのインターネット・アカデミーでは、Web業界を目指すあらゆる方にお応えすべく、多彩なコースをご用意しています。

Webデザインを学びたい方

プログラミングを学びたい方

自分のペースとスタイルで学べる

毎回好きな受講形式を選んで学習することができるので、働きながらじっくり通いたい方も短期間での就職を目指す方も自分の都合に合わせて、スケジュールを組むことができます。

  • ライブ授業

    現役のプロインストラクター
    と仲間と学ぶメリット

    ライブ授業
  • マンツーマン授業

    インストラクターと
    1対1という贅沢

    マンツーマン授業
  • オンデマンド授業

    いつでも学びたいことを
    学べる

    オンデマンド授業

自分に適した学習方法を探す

インターネット・アカデミーでは、無料体験レッスンを毎日開催しています。デザインやプログラミングの体験ができるのはもちろん、実際の授業に参加したり、就職や転職のご相談、通学スケジュールのご相談なども承っております。

  • ご要望をお伺い

    ご要望をお伺い

    まずはお客様のご要望をお伺いし、お一人おひとりの目的や悩みに最適な内容にカスタマイズ。お客様専用の内容で当日ご案内いたします。

  • カウンセリング

    カウンセリング

    就職や転職、在宅で働きたいなど、お客様の希望を叶えるために専任のスタッフが最適な学習プランをご提案。現在の仕事のご相談なども承ります。

  • 体験レッスン

    体験レッスン

    「自分に向いている分野は?」「自分にできる?」そんな疑問を解決するレッスンを無料で体験。デザインもプログラミングもお試しいただけます。

無料体験レッスン・個別相談のご予約

当日ご希望の方やお急ぎの方は、フリーダイヤルにてご予約いただけます。

0120-746-555 フリーダイヤル受付時間(平日・土日) 10時-21時 オンライン予約

IT研修・人材育成のご相談を無料で承っております
法人専用社員研修、内定者・新人研修のご予約

インターネット・アカデミーでは、
あらゆるニーズに合わせた研修カリキュラムを取り揃えています。

「自社に最適な研修プランを相談したい」「研修費用の相談をしたい」「助成金を申請したい」など、お電話またはお問い合わせフォームよりお気軽にご連絡ください。

03-3341-3781 受付時間(平日・土日) 10時-21時 法人専用 お問い合わせフォーム