Groovy(Java)でランダムな半角英数字を作成
CakePHP勉強中。
初期セットアップ手順に設定ファイル内の Security.salt っていうランダム文字列の値(40文字)を書き直しなさいってあったので、なんかいいコマンドないか探してみた。
ググると、Linuxなら mkpasswd というコマンドで生成できるよ、とあった。
Cygwin環境で試したところ、うまく動かなかったため(パッケージをインストールしていないだけかも)Groovyで作ってみた。Apacheのcommons-langライブラリにちょうど良いメソッドがあったためそれを呼び出しただけ。
Contents
mkrandomtxt.groovy
#!/usr/bin/env groovy
@Grab("commons-lang:commons-lang:2.2")
import static org.apache.commons.lang.RandomStringUtils.*
def cli = new CliBuilder(usage: "${this.class.name} [-a] [-n] arg")
cli.a longOpt: "alpha", args: 0, "use alphabet chars.", required: false
cli.n longOpt: "num", args: 0, "use number chars.", required: false
def opt = cli.parse args
def params = opt.arguments()
if (params.size() != 1 || !params[0].isNumber() || (!opt.a && !opt.n)) {
cli.usage()
System.exit 1
}
if (opt.a && opt.n) {
println randomAlphanumeric(params[0].toInteger())
} else if (opt.a) {
println randomAlphabetic(params[0].toInteger())
} else if (opt.n) {
println randomNumeric(params[0].toInteger())
}
使い方
$ ./mkrandomtxt.groovy
usage: test [-a] [-n] arg
-a,--alpha use alphabet chars.
-n,--num use number chars.
$ ./mkrandomtxt.groovy -a
usage: test [-a] [-n] arg
-a,--alpha use alphabet chars.
-n,--num use number chars.
$ ./mkrandomtxt.groovy -n
usage: test [-a] [-n] arg
-a,--alpha use alphabet chars.
-n,--num use number chars.
$ ./mkrandomtxt.groovy -a 40
YigbOgZPxHVbykasJjfBXooaRvrZfpriDFNtBhDv
$ ./mkrandomtxt.groovy -n 40
3426318853025788662162725592943221571994
$ ./mkrandomtxt.groovy -a -n 40
EEBZyK8BwAoyCriTJUJ8N2eHOUSAhHv41EDLtfmt
$ ./mkrandomtxt.groovy -an 40
lPckdxen3LBLrJddAZUBTRctIFChPBRmwYC0nxau
ディスカッション
コメント一覧
まだ、コメントがありません