- 554 名前:名無し検定1級さん mailto:sage [2008/12/31(水) 19:42:35 ]
- >>553
乗りかかった船なので問題見てみた。 ただ、解答が「1つの〜」じゃないっぽいんだが。 問題はこれで www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_1/2006h18h_sv_pm1_qs.pdf 解答はこれだよな? www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_1/2006h18h_sv_pm1_ans.pdf まあ、解答無視して問題について。 秒を暗号化文字列にしてるのは、表4のサブルーチンの基本仕様と図 G君が作成したコードを見ればわかる。 コードを見ると、まずnow関数を使用して、システム時刻YYYYMMDDhhmmssを変数sid_timeに格納してる。 その後sid_timeと正規表現のパターンマッチを行う。 正規表現は..$だが、$は文字列の末尾を表す特殊文字で.は任意の1文字を意味してる。 で、このパターンマッチによって、sid_timeに格納されたYY〜ssの文字列が、 「任意の二文字+文字列の末尾を表す特殊文字」で終わってるかどうかを見てる。 $はYY〜ssの方の文字列には見えないが、これは勝手につくので、本当はYY〜ss$って文字列と認識されてる。 ss$と..$のパターンマッチなので、これは成功する。 で、パターンマッチの後、変数saltに$&を代入してるが、 $&はperlの特殊変数で「最後にパターンマッチでマッチした文字列」を表す。 よってこの時点で$&は直前のパターンマッチでマッチしたssを表している。 あとはこのssを格納した変数saltををencrypt関数の引数として渡してるだけ。 perlを知らないと暗号化文字列に秒を使ってるというのがわからないな。
|
|