Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mkpasswd を再実装したくなったので AIに伴走してもらいながら rekey という パ...
Search
akase244
July 21, 2026
Programming
35
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
mkpasswd を再実装したくなったので AIに伴走してもらいながら rekey という パスワードジェネレーターを作ってみた #fukuokago
「Fukuoka.go#23」でLT登壇した際のスライドです。
akase244
July 21, 2026
More Decks by akase244
See All by akase244
Let’s Encryptのフォールバック先について #ツナギメオフライン.8
akase244
0
60
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
460
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
connpassのMCPを作ってみた #ツナギメオフライン.6
akase244
0
71
ローカル環境でSSL/TLS証明書を発行して警告表示を出さないようにするアレコレ #ツナギメオフライン.5
akase244
0
86
GitHub Actionsを使って指定した日時にPull Requestをマージしたい #lydmeet
akase244
0
89
Bashスクリプトにおけるバッチ処理の同時実行制御について #ツナギメオフライン.4
akase244
0
130
疎通・有効期限を確認するコマンド #ツナギメオフライン.3
akase244
0
91
AIサービスに利用規約について聞いてみた #ツナギメオフライン.2
akase244
0
96
Other Decks in Programming
See All in Programming
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
290
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
170
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
200
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
0
170
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
270
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
2
1.3k
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
120
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
630
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
170
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
190
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
sira's awesome portfolio website redesign presentation
elsirapls
0
310
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The Language of Interfaces
destraynor
162
27k
First, design no harm
axbom
PRO
2
1.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Docker and Python
trallard
47
4k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
880
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
Fukuoka.go#23 mkpasswd を再実装したくなったので AIに伴走してもらいながら rekey という パスワードジェネレーターを作ってみた July 21, 2026.
@akase244 <?php var_dump( (new Me()) ->WebApplicationEngineer() ->InfrastructureEngineer() );
@tsunagimefm https://tsunagi.me/
ツナギメエフエム 第19回、第123回 https://open.spotify.com/episode/6qBkYxuSRkOvkraeOkyZm9?si=xFy2AKdlTHSsok0mBBRypg https://open.spotify.com/episode/51m8ziy9gahfoHNEEd9J3X?si=MhMA4NP9S5y_ZMVrOh9NpQ
最初におことわり 今回、Goで実装してるんですが 本スライドではGoについての言及は ほとんど出てきません🙏 ※コンセプトの無いものを作った話をします
生成AIが登場する前 こんなツールを 作りたいなぁ と、頭の中でなんとなく設計して こうやったら作れるなぁ。。。 といったところまで考えがまとまった ら満足してしまい、手を動かすところ までに至らないことが多々ありました
生成AIが登場した後 こんなツールを 作りたいなぁ なんとなく作れそうな気がする。。。 よし、生成AIを使って作ろう!! といったことがとても気軽にできるよ うになりました
今回作りたいもの パスワード生成ツール
パスワードのルールはwebサイト毎に異なる
もっと細かく指定したい https://1password.com/jp/password-generator
ちょっと惜しい https://www.luft.co.jp/cgi/randam.php
遠い記憶 たしか、mkpasswd というコマンドが あったよな。。。 随分前の話になりますが、RHEL系の OSで expect というパッケージに含ま えれていた mkpasswd
というコマンド でパスワード文字列が生成できていた ことを思い出しました。
AlmaLinux 10(RHEL系OS) では「command not found」 $ docker container run \
--rm \ -it almalinux:10 \ bash -c ' dnf install -y -q expect >/dev/null 2>&1 && mkpasswd ' bash: line 3: mkpasswd: command not found
AlmaLinux 8 だと実行できる??? $ docker container run \ --rm \
-it almalinux:8 \ bash -c ' dnf -y -q install expect >/dev/null 2>&1 && mkpasswd ' h1%ONx1ms
AlmaLinux 9 からコマンド名が変わるという破壊的変更が $ docker container run \ --rm \
-it almalinux:9 \ bash -c ' dnf install -y -q expect >/dev/null 2>&1 && rpm -ql expect |grep '/bin/' ' /usr/bin/autoexpect ・ ・ /usr/bin/mkpasswd-expect ・ ・
Ubuntu 26.04(Debian系OS)の mkpasswd は別モノ $ docker container run \ --rm
\ -it ubuntu:26.04 \ bash -c ' export DEBIAN_FRONTEND=noninteractive apt-get update -qq && apt-get install -y -qq whois > /dev/null && mkpasswd p1a2s3s4w5o6r7d ' $y$j9T$3KtA7y5OoRERm2AgmKKQe/$M9EpCdY7bSKMGLUtCuFjEt0m9nFH.g TJ375rgF9yrpD
パスワード文字列を生成するコマンドの例 • mkpasswd(RHEL系8以前) • mkpasswd-expect (RHEL系9以降) • pwgen(RHEL系 / Debian系)
• openssl rand • /dev/urandom • gpg • apg • gpw • makepasswd
コマンドラインでパスワード文字列を生成する方法のあれこれ https://qiita.com/akase244/items/a68100ab20b4c712d90d
今回実装したかった仕様 • パスワードの文字数を指定することができる • 使用する文字を指定することができる • 除外する文字を指定することができる • 大文字を除外することができる •
小文字を除外することができる • 数字を除外することができる • 記号を除外することができる • 紛らわしい文字(0、O、1、l、I、i、!、|)を除外することができる • 同一文字の連続出力を禁止することができる • コマンド実行に「’」をエスケープするのは面倒なので「’」は使わない • spf13/cobra を使ってみたい(個人的興味)
「rekey」というパスワード生成ツールを開発 https://github.com/akase244/rekey
「rekey」というパスワード生成ツールを開発 $ rekey --help rekey - 強固なパスワードを生成するCLIツール Usage: rekey [flags]
Flags: --allow string 使用する文字を明示指定(この文字のみ使用) --deny string 除外する文字を指定(例: --deny '|"') -h, --help help for rekey ・ ・ -v, --version バージョンを表示する
実装してみた感想 マジで雑に作りたいものが作れる
おまけ①
「Fukuoka.go#20」で話した件ですが。。。 https://speakerdeck.com/akase244/gonanimowakaranaikedochatgpttogong-nijie-jue-sitaike-ti-gajie-kerukayatute mita-number-fukuokago
「Fukuoka.go#20」で話した件ですが。。。 https://speakerdeck.com/akase244/gonanimowakaranaikedochatgpttogong-nijie-jue-sitaike-ti-gajie-kerukayatute mita-number-fukuokago
実装が完了して本番環境で稼働しています https://github.com/akase244/synpack
おまけ②
@tsunagimeoff https://tsunagime-offline.connpass.com/
ツナギメオフライン ベンキョウカイ #9 https://tsunagime-offline.connpass.com/event/399691/
Thanks! Have a good programming!!