今回は、Streamlitを使用して簡単なパスワード生成アプリを作成するアプリを作りたいと思います。
ユーザーがパスワードの長さや含める文字種を選択し、生成ボタンをクリックするとランダムなパスワードが生成されます。

コード全体
import streamlit as st
import random
import string
def generate_password(length, use_uppercase, use_numbers, use_special_chars):
characters = string.ascii_lowercase
if use_uppercase:
characters += string.ascii_uppercase
if use_numbers:
characters += string.digits
if use_special_chars:
characters += string.punctuation
password = ''.join(random.choice(characters) for _ in range(length))
return password
st.title("パスワード生成アプリ")
password_length = st.slider("パスワードの長さを選択してください", min_value=6, max_value=20, value=12)
use_uppercase = st.checkbox("大文字を含める")
use_numbers = st.checkbox("数字を含める")
use_special_chars = st.checkbox("特殊文字を含める")
if st.button("パスワードを生成"):
password = generate_password(password_length, use_uppercase, use_numbers, use_special_chars)
st.success("生成されたパスワード: " + password)
st.info("セキュリティのために生成されたパスワードは安全に保管してください。")
コードの詳細
今回のパスワード生成アプリは、指定した条件に基づいてランダムなパスワードを生成するものです。
1. 必要なライブラリのインポート
まず、必要なライブラリをインポートします。streamlitは、ウェブアプリケーションを作成するためのライブラリです。また、randomとstringはランダムな文字列を生成するために使用します。
import streamlit as st
import random
import string
2. パスワード生成関数の定義
パスワードを生成するための関数を定義します。この関数は、指定された長さと文字種に基づいてランダムなパスワードを生成します。
def generate_password(length, use_uppercase, use_numbers, use_special_chars):
characters = string.ascii_lowercase
if use_uppercase:
characters += string.ascii_uppercase
if use_numbers:
characters += string.digits
if use_special_chars:
characters += string.punctuation
password = ''.join(random.choice(characters) for _ in range(length))
return password
generate_password 関数についてもう少し詳しく解説します。この関数は、指定された条件に基づいてランダムなパスワードを生成します。
generate_password 関数の概要
generate_password 関数は、以下のパラメータを受け取り、指定された条件に従ってランダムなパスワードを生成します。
length: パスワードの長さuse_uppercase: 大文字を含めるかどうかのフラグuse_numbers: 数字を含めるかどうかのフラグuse_special_chars: 特殊文字を含めるかどうかのフラグ
パスワード生成のアルゴリズム
以下の手順でランダムなパスワードを生成します。
- 最初に、
string.ascii_lowercaseで小文字のアルファベットを初期化します。この文字列に他の文字を追加していきます。 use_uppercaseフラグがTrueの場合、大文字のアルファベットをcharacters文字列に追加します。use_numbersフラグがTrueの場合、数字をcharacters文字列に追加します。use_special_charsフラグがTrueの場合、特殊文字をcharacters文字列に追加します。- 生成されるパスワードの長さが
lengthとなるまで、characters文字列からランダムに文字を選んで連結し、パスワードを生成します。
3. StreamlitアプリのUIの作成
次に、StreamlitアプリのUIを作成します。st.titleやst.slider、st.checkboxなどの関数を使用して、ユーザーが設定を行えるUI要素を表示します。
st.title("パスワード生成アプリ")
password_length = st.slider("パスワードの長さを選択してください", min_value=6, max_value=20, value=12)
use_uppercase = st.checkbox("大文字を含める")
use_numbers = st.checkbox("数字を含める")
use_special_chars = st.checkbox("特殊文字を含める")
4. パスワード生成と表示
ユーザーが設定を行った後、”パスワードを生成” ボタンがクリックされた場合に、実際にパスワードを生成して表示します。
if st.button("パスワードを生成"):
password = generate_password(password_length, use_uppercase, use_numbers, use_special_chars)
st.success("生成されたパスワード: " + password)
st.info("セキュリティのために生成されたパスワードは安全に保管してください。")
これで、簡単なパスワード生成アプリのコードが完成しました。ユーザーがパスワードの長さや含める文字種を選択し、生成ボタンをクリックしてランダムなパスワードを取得できます。


