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
37
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
62
PHPでローカル環境用のSSL/TLS証明書を発行することはできるのか? #phpconkagawa
akase244
0
470
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
connpassのMCPを作ってみた #ツナギメオフライン.6
akase244
0
74
ローカル環境でSSL/TLS証明書を発行して警告表示を出さないようにするアレコレ #ツナギメオフライン.5
akase244
0
91
GitHub Actionsを使って指定した日時にPull Requestをマージしたい #lydmeet
akase244
0
92
Bashスクリプトにおけるバッチ処理の同時実行制御について #ツナギメオフライン.4
akase244
0
130
疎通・有効期限を確認するコマンド #ツナギメオフライン.3
akase244
0
98
AIサービスに利用規約について聞いてみた #ツナギメオフライン.2
akase244
0
99
Other Decks in Programming
See All in Programming
今さら聞けない .NET CLI
htkym
0
190
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
170
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
290
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.5k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
680
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
150
プロポーザルを書いてもらう
pvcresin
0
510
AIが無かった頃の素敵な出会いの話
codmoninc
1
430
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
860
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.4k
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
30 Presentation Tips
portentint
PRO
1
370
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
WENDY [Excerpt]
tessaabrams
11
39k
Rails Girls Zürich Keynote
gr2m
96
14k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Claude Code のすすめ
schroneko
67
230k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
620
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
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!!