読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

乱数でパスワードジェネレーター作ってみた。C#

Randomクラスを使ってパスワードジェネレーターを作ってみました。
Random クラス (System)

きっかけはかなり信頼していたPasswordBoxのサービスの閉鎖です。
jp.techcrunch.com

フォームイメージ
f:id:tos5511:20160115230756j:plain

using System;
using System.Text;
using System.Windows.Forms;

namespace PasswordGenerator {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            textBox1.Text = length.ToString();
        }
        string abc = "abcdefghijklmnopqrstuvwxyz";
        string ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        string num = "0123456789";
        string smb = "!#$%&()/*-+<>[]";
        int length = 8;

        private void button1_Click(object sender, EventArgs e) {
            StringBuilder sb = new StringBuilder();
            StringBuilder sbp = new StringBuilder();
            Random r = new Random();

            try {
                length = int.Parse(textBox1.Text);
                if (length < 6 || length > 20) {
                    MessageBox.Show("文字数を6~20文字の範囲で入力してください");
                    return;
                }
            }catch(Exception ex) {
                MessageBox.Show("入力が不正です");
            }

            sbp.Append(abc);
            sbp.Append(ABC);

            for(int i = 0; i < length; i++) {
                int pos = r.Next(sbp.Length);
                char c = sbp[pos];
                sb.Append(c);
            }

            textBox2.Text = sb.ToString();
            sb.Clear();

            sbp.Append(num);

            for (int i = 0; i < length; i++) {
                int pos = r.Next(sbp.Length);
                char c = sbp[pos];
                sb.Append(c);
            }

            textBox3.Text = sb.ToString();
            sb.Clear();

            sbp.Append(smb);

            for (int i = 0; i < length; i++) {
                int pos = r.Next(sbp.Length);
                char c = sbp[pos];
                sb.Append(c);
            }

            textBox4.Text = sb.ToString();
            sb.Clear();
        }
    }
}

実行結果
f:id:tos5511:20160115230816j:plain

少し時間ができたら、スマホ対応なども済ませ自作のパスワード管理アプリに
発展させたいなと思っていたり。