mkpass

乱数を生成する

カレンダーネタが終わらないままに1年近く放置していましたが、一旦それはそれとしてPowerShellで作ったパスワード生成スクリプトをSwiftで書き直してみましょうか。

#! /usr/bin/swift
import Foundation
var passwd: String = ""
for n in 1...8 {
  var code: UInt32  = arc4random_uniform(94) + 33
  passwd += "\(UnicodeScalar(code)!)"
}
print(passwd)

いきなりドン!

arc4random_uniform()を使うと、引数で指定した数の0から始まる整数をランダムに返してくれます。

ここで94を指定して33を加えているのは、33から126までの任意の整数を得たいから。で、これが何かというと半角英数記号で表示されるASCII codeです。

ASCII codeをUnicodeScalar()で文字に変換して、必要な回数これを繰り返すとパスワードが生成されるというわけ。

心臓部ができたのでコマンド化できそうです。