読者です 読者をやめる 読者になる 読者になる

ゲンゾウ用ポストイット

Java、Groovy、Linux関連の備忘録

ランダムな半角英数字を作成

Java Groovy

CakePHP勉強中。初期セットアップ手順に設定ファイル内の Security.salt っていうランダム文字列の値(40文字)を書き直しなさいってあったので、なんかいいコマンドないか探してみた。

ググると、Linuxなら mkpasswd というコマンドで生成できるよ、とあった。
任意の桁数のランダムな文字列を発生させるコマンド Linux

Cygwin環境で試したところ、うまく動かなかったため(パッケージをインストールしていないだけかも)Groovyで作ってみた。
commons-langにちょうど良いメソッドがあったためそれを呼び出しただけ。

mkrandomtxt

#!/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())
}

使い方

genzou@home:~$ ./mkrandomtxt
usage: test [-a] [-n] arg
 -a,--alpha   use alphabet chars.
 -n,--num     use number chars.

genzou@home:~$ ./mkrandomtxt -a
usage: test [-a] [-n] arg
 -a,--alpha   use alphabet chars.
 -n,--num     use number chars.

genzou@home:~$ ./mkrandomtxt -n
usage: test [-a] [-n] arg
 -a,--alpha   use alphabet chars.
 -n,--num     use number chars.

genzou@home:~$ ./mkrandomtxt -a 40
YigbOgZPxHVbykasJjfBXooaRvrZfpriDFNtBhDv

genzou@home:~$ ./mkrandomtxt -n 40
3426318853025788662162725592943221571994

genzou@home:~$ ./mkrandomtxt -a -n 40
EEBZyK8BwAoyCriTJUJ8N2eHOUSAhHv41EDLtfmt

genzou@home:~$ ./mkrandomtxt -an 40
lPckdxen3LBLrJddAZUBTRctIFChPBRmwYC0nxau
広告を非表示にする