2019年9月23日月曜日

ランダム文字列でパスワード生成

こんばんは、こうちゃんです。

以前紹介しました文字列操作関数の、
substr と str_shuffle を用いて、
ある程度ランダム性のあるパスワードを生成するプログラムです。

echo substr(str_shuffle('1234567890abcdefghijklmnopqrstuvwxyz'), 0, $length);

このようにすると、$lengthに数字を送ると、その文字数のランダム文字列が出力されます。
この場合、この文字列の順番を変えるだけですので、
同じ文字は1度まで、最大でも36文字の文字列になります。
仮にパスワードとして使うと、脆弱過ぎるので、
簡易的なパスワードに用いる場合などに。

もう少し複雑にしたい場合、
str_shuffle の対象文字列を、
1234567890abcdefghijklmnopqrstuvwxyz の後ろに A~Z の大文字アルファベット26文字も入れれば、大文字も入り、少し複雑になります。
同じように、!"#$%&'()=- とかも入れれば記号も入り複雑になります。

こうちゃん

2019年9月4日水曜日

文字列の一部分を返すsubstr

こんばんは、こうちゃんです。

文字列操作の関数の内、
指定文字列の一部を切り取るのに便利な関数、substrです。

利用法は、
公式
https://www.php.net/manual/ja/function.substr.php
より

substr ( string $string , int $start [, int $length ] ) : string
文字列 string の、start で指定された位置から length バイト分の文字列を返します。

string
入力文字列。最低 1 文字以上を指定しなければなりません。

start
start が正の場合、返される文字列は、 string の 0 から数えて start番目から始まる文字列となります。 例えば、文字列'abcdef'において位置 0にある文字は、'a'であり、 位置2には'c'があります。

start が負の場合、返される文字列は、 stringの後ろから数えて start番目から始まる文字列となります。

string の長さが start 文字より短い場合は FALSE が返されます。


例:
<?php
$rest = substr("abcdef", -1);    // "f" を返す
$rest = substr("abcdef", -2);    // "ef" を返す
$rest = substr("abcdef", -3, 1); // "d" を返す

$rest = substr("abcdef", 0, -1);  // "abcde" を返す
$rest = substr("abcdef", 2, -1);  // "cde" を返す
$rest = substr("abcdef", 4, -4);  // false を返す
$rest = substr("abcdef", -3, -1); // "de" を返す
?>

こうちゃん