今回は、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("セキュリティのために生成されたパスワードは安全に保管してください。")
これで、簡単なパスワード生成アプリのコードが完成しました。ユーザーがパスワードの長さや含める文字種を選択し、生成ボタンをクリックしてランダムなパスワードを取得できます。