「パスワード」タグアーカイブ

メールのパスワードの設定プログラム

メールのパスワード設定一覧を作るときに半角英数で、メールアドレスが有効で、メールアドレスとは別にアカウントがあります。

いろんなチェックをして、生成して、配らないといけません。結構面倒ですし、エラーも多いので、こちらでプログラムを書いてみました。

追加仕様:(2名様のニーズを反映)
1.必ず英字大文字小文字数字記号の組み合わせを入れる。
2.10桁から12桁までランダム

サンプルプログラムは下記になります。CSV形式等は自分で行なってください。

https://abundcore.net/program-library/email-password/

 

<?php

function generateRandomPassword() {
    // パスワードの長さを10から12桁の間でランダムに決定
    $length = rand(10, 12);
    // 各カテゴリの文字
    $lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz';
    $uppercaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $numbers = '0123456789';
    $symbols = '#%=-+:?_<>[]{}()^!,.';

    // 各カテゴリから最低1文字を確実に含める
    $password = $lowercaseLetters[rand(0, strlen($lowercaseLetters) - 1)];
    $password .= $uppercaseLetters[rand(0, strlen($uppercaseLetters) - 1)];
    $password .= $numbers[rand(0, strlen($numbers) - 1)];
    $password .= $symbols[rand(0, strlen($symbols) - 1)];

    // 全ての文字を結合して残りの部分をランダムに選択
    $allCharacters = $lowercaseLetters . $uppercaseLetters . $numbers . $symbols;
    for ($i = strlen($password); $i < $length; $i++) {
        $password .= $allCharacters[rand(0, strlen($allCharacters) - 1)];
    }

    // パスワードをシャッフルして各カテゴリの文字が最初に来ないようにする
    $password = str_shuffle($password);

    return $password;
}

function isValidUsername($username) {
    // ユーザーネームが半角英数とピリオド、ハイフンのみを含むかチェック
    return $username !== '' && preg_match('/^[a-zA-Z0-9\.\-]+$/', $username);
}

function isValidEmail($email) {
    return $email !== '' && filter_var($email, FILTER_VALIDATE_EMAIL);
}

$userData = [];
$errors = [];

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    for ($i = 1; $i <= 5; $i++) {
        $username = $_POST["username$i"] ?? '';
        $email = $_POST["email$i"] ?? '';
        if ($username !== '' || $email !== '') {
            if (!isValidUsername($username)) {
                $errors[] = "ユーザーアカウント {$i} は無効です。半角英数とピリオド、ハイフンのみ使用可能です。";
                continue;
            }
            if (!isValidEmail($email)) {
                $errors[] = "メールアドレス {$i} は無効です。";
                continue;
            }
            $password = generateRandomPassword();
            $userData[] = [
                'username' => $username,
                'email' => $email,
                'password' => $password
            ];
        }
    }
}
?>

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>パスワードフォーム</title>
</head>
<body>
    <h1>パスワードフォーム</h1>
    <form method="post">
        <?php for ($i = 1; $i <= 5; $i++): ?>
            <div>
                <label for="username<?= $i ?>">ユーザーアカウント <?= $i ?>:</label>
                <input type="text" id="username<?= $i ?>" name="username<?= $i ?>">
                <label for="email<?= $i ?>">メールアドレス:</label>
                <input type="email" id="email<?= $i ?>" name="email<?= $i ?>">
            </div>
        <?php endfor; ?>
        <button type="submit">送信</button>
    </form>
    
    <?php if (!empty($errors)): ?>
        <div style="color: red;">
            <?php foreach ($errors as $error): ?>
                <p><?= $error ?></p>
            <?php endforeach; ?>
        </div>
    <?php endif; ?>

    <?php if (!empty($userData)): ?>
        <h2>生成されたパスワード一覧</h2>
        <table border="1">
            <tr>
                <th>ユーザーアカウント</th>
                <th>メールアドレス</th>
                <th>新しいパスワード</th>
            </tr>
            <?php foreach ($userData as $user): ?>
                <tr>
                    <td><?= htmlspecialchars($user['username'], ENT_QUOTES) ?></td>
                    <td><?= htmlspecialchars($user['email'], ENT_QUOTES) ?></td>
                    <td><?= $user['password'] ?></td>
                </tr>
            <?php endforeach; ?>
        </table>
    <?php endif; ?>
</body>
</html>

AWS lightsailでハマるところ一覧

AWS lightsailの初期設定でハマるところ一覧です。

1.MySQL等のパスワードがわからない。

下記のファイルに書いてあります。
/home/bitnami/bitnami_application_password
MySQLだとユーザーはrootです。

2.phpmyadminが見れない。

http://■.■.■.■/phpmyadmin
下記エラーがでる。
For security reasons, this URL is only accessible using localhost (127.0.0.1) as the hostname.
IPの許可記述が必要です。
/opt/bitnami/apps/phpmyadmin/conf/httpd-app.conf のファイルの
<IfVersion >= 2.3>
Require local
にRequire ip ▲.▲.▲.▲
を追加(▲は自分のIP)

3.MYSQLやHTTPの起動用のスクリプトはどこ?

/opt/bitnami/ctlscript.sh
停止
sudo /opt/bitnami/ctlscript.sh stop
起動
sudo /opt/bitnami/ctlscript.sh start
再起動
sudo /opt/bitnami/ctlscript.sh restart
状態確認
sudo /opt/bitnami/ctlscript.sh status

4.SFTPやSSHでハマるとこ

SSH キーペアはこちらのURL(2018年2月19日現在)
https://lightsail.aws.amazon.com/ls/webapp/account/keys

5.時間設定

cp /etc/localtime /etc/localtime.org
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

 

MAC OSX 10.3.9でrootのパスワード設定

注意:この内容に関して、弊社で一切保証するものではありません。

MAC OSX 10.3.9でrootのパスワード設定
(弊社のマシーンだけ?APPLEのサイトの説明と少し違う)

コンソールでUNIX系ソフトをいろいろ入れようと思ったのですが、
suでないと入れられません。

$su
Password:

rootのパスワードは設定した覚えがない。
Linuxだとシングルモードで変更すればよいのでしょうが、
さて、MACでは・・・・
調べてみると、
「NetInfoマネージャー」で変えられるようです。
場所は「Macintoshi:アプリケーション:ユーティリティ:」
です。

「NetInfoマネージャー」でrootのパスワードを変えるには?

1、「Macintoshi:アプリケーション:ユーティリティ:」を開く。
2、「NetInfoマネージャー」を起動
3、メニューの「ドメイン」の「開く」を選択
4、「NetInfoドメインの選択」を選び、「OK」ボタンをクリック
5、「local@localhost -/」のウインドウが出るのを確認。
6、メニューの「セキュリティ」を選ぶ、「ルートパスワードの設定」
7、古いルートパスワードを覚えていれば、指示通りに古いものと新しいものを入れればいい。
しかし、古いルートパスワードを絶対入れた覚えの無い方は8へ
8、メニューの「セキュリティ」を選ぶ、「ルートユーザを無効」
9、メニューの「セキュリティ」を選ぶ、「ルートユーザを有効」
10、エラーが表示され、「ルートパスワードを設定」画面になります。
11、「ルートパスワードを設定」画面で「古いルートパスワード」はいれずに「新しいルートパスワード」を入れてください。
12.これで終了です。

「ルートユーザを無効」も「ルートユーザを無効」も出来ない方は、認証が出来ていないか、ドメインが選択が出来ていません。

Apple公式サイトの回答(2005年11月10日現在)
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/wa/showTIL?id=106290#one