Ubuntu 資料一覧

/dev/urandomを使ってランダムなパスワードを生成する方法

2014/11/09更新

対応バージョン: 14.04

Linuxでは特別なソフトウェアを使わなくても/dev/urandomを使ってランダムなパスワードを簡単に生成することができる。

trやfoldとの組み合わせなので不要な文字を取り除いたり桁数を変えたりすることも簡単にできる。

以下にいくつか例を示す。

英数字

(foldとheadを使って12桁のパスワードを10個生成)

% cat /dev/urandom | tr -dc "[:alnum:]" | fold -w 12 | head -n 10
a4QW6L1ZEmR8
Q09o986mrvso
FSOD8ilCHV5Z
QcjDXLLH1xSL
tHdHNO1i2xYG
qwZdRyXxb8ut
1q8wifhvh5pv
jEB9MmRQG0h3
aw9K7HpGy66x
Yr5s5JcJub8v
英数字 + 記号
% cat /dev/urandom | tr -dc "[:graph:]" | fold -w 12 | head -n 10
n1ETpKJ([L3f
(D*{Q-9O'}QA
0Fy+d{iU\.AP
Uj^h/_vray\D
l<dEC&}ein'h
uZ'ylP1a?({.
&;G450jKww*8
fk>hI6%@[Qgu
qyEkx|[V3d9[
LF(AgM=riBw*
上記から間違えやすい文字(*)を省いたもの

(*) 1(数字のイチ)とI(英大文字のアイ)とl(英小文字のエル)、0(数字のゼロ)とO(英大文字のオー)、~(チルダ)と^(カレット)

% cat /dev/urandom | tr -dc "[:graph:]" | tr -d "1Il0O~^" | fold -w 12 | head -n 10
tjzuG5bCn6[&
n[!DnN$W}&|>
}xm>awYZsoHs
g9*JWqi*Vc4f
cRE|aLMK_emz
k&.{Q|8=Gw=9
+(auXxm`g4Gr
mBBH8i.;u_!4
rV/(MU5<[fB&
>@cb}Zn>(]VD

このようにワンライナーで簡単にランダムなパスワードが生成できるのでシェルスクリプトなどに組み込むのも簡単である。

#!/bin/sh

passwd=`cat /dev/urandom | tr -dc "[:graph:]" | head -c 12`