No.3ベストアンサー
- 回答日時:
自分だったら
<?php
srand((double)microtime()*1000000);
$r = rand();
echo substr(md5($r),0,4); // ハッシュかけて先頭四文字抜き出す
?>
ただし数字だけ、アルファベットだけ、となってしまう場合があるので
<?php
srand((double)microtime()*1000000);
$r = rand();
while (!ereg('[a-zA-Z]',substr(md5($r),0,4)) || !ereg('[0-9]',substr(md5($r),0,4))) {
$r = rand();
}
echo substr(md5($r),0,4);
?>
こんな感じで。
No.5
- 回答日時:
私の場合は、こんな感じ
<?php
$pslist = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for ($i=0;$i<7;$i++){
$num = rand(0,62)."\n";
$passwd .=substr($pslist,$num,1);
}
echo md5($passwd)."\n";
echo $passwd."\n";
?>
# pearでパスワード生成してくれるものがありますが、
# 何故か全角文字が出現するので使えないです
回答の中にmd5()が有る理由がわかりませんでしたが、数字とアルファベットは両方なくてもいいなら、ANo.#3のMD5よりも高速なtomy06さんの方法より高速でした。
62は61に直しました。
No.4
- 回答日時:
ハッシュ値って16進数では?
私はこんな感じで。
1文字だけの場合ね。。
srand((double)microtime()*1000000);
$r = rand(65,100);
if($r<91){
print chr($r);
}else{
$r = $r -90;
print substr($r,strlen($r)-1,1);
}
それは大文字です。
elseの方についてはstrlenは不要です。不要なstrlenを取り払っても、chr($r - ...);より遅いです。
No.2
- 回答日時:
No1のCのプログラムにミスが・・・
rn[n]=val[rand()*36]; →rn[n]=val[rand()%36];
No1のプログラムを簡単に解説すると0~35の乱数を4つ作ってそれを0-9 a-zに置き換えています。
わからないことがあれば聞いてください。
「わかる範囲で」答えます。
No.1
- 回答日時:
0-9,a-zの36種を使って4文字の乱数を作るということでしょうか?
PHPをやったことが無いんで言語共通のアドバイスだけ。
0,1,2,・・・,8,9,a,b,・・・,y,zという1次元36要素の配列を作ります。
0~35までの乱数を作りその乱数の数値の要素を結果用の変数に代入する。
これを4回繰り返します。
Cで書くとこうなります。
int n;
char val[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char rn[5];
for(n=0;n<4;n++)
rn[n]=val[rand()*36];
rn[4]='\0';
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(IT・Webサービス) パスワードの組み合わせについて 2 2023/07/05 00:01
- 高校 数学Aの問題です。 下記2パーンのとき、それぞれ何通りありますか? ①アルファベット大文字小文字のい 3 2023/02/08 16:32
- 統計学 Excelによるサンプルの拡大について 6 2023/08/22 16:03
- 数学 文字と式が全然分かりません ・乗法や除法を省いて書く ・数字を文字の前に書く ・数字が1の場合は省い 7 2023/04/12 12:25
- 政治 国会議員の役目:国会議員の仕事は日本を良くすることです。 本当に良くしてますでしょうか?(笑) 2 2022/08/19 20:54
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
- Excel(エクセル) Excelの入力規則にいれる関数について 7 2022/12/22 10:19
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- Excel(エクセル) Excelの数式の質問です。 A列に「redhat 8.0, centOS 7.9, python 4 2023/05/12 19:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
pdftkを使った処理をバッチファ...
-
バッチファイルで、全てのウィ...
-
バッチファイルでpingの結果を...
-
xxxx.mdb からデータを取り出...
-
Windowsのsetコマンドでの小数...
-
phpでcookieがうまく保存されない
-
PHP一覧表示した項目にリンクを...
-
オブジェクトの中身の判定(PHP)
-
小数点以下0の非表示
-
ゼロとNULLを区別して number_f...
-
PHPで値を表示する「echo」「pr...
-
phpで、可変項目のcsvデータ...
-
ダブルクウォートやヒアドキュ...
-
ナベアツプログラム(3の倍数...
-
PHPで訪問回数を表示するカウン...
-
syntax error, unexpected 'ech...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
switch()文で値の大小比較
-
syntax error, unexpected 'ech...
-
findstrのerrorlevel
-
小数点以下0の非表示
-
Windowsのsetコマンドでの小数...
-
ゼロとNULLを区別して number_f...
-
DBのハッシュ化したパスワード...
-
オブジェクトの中身の判定(PHP)
-
bashの関数の引数にスペースが...
-
PHPで訪問回数を表示するカウン...
-
バッチファイルで、全てのウィ...
-
pdftkを使った処理をバッチファ...
-
PHP一覧表示した項目にリンクを...
-
PHPでのパスワード制限のセキュ...
-
RSSにdiv,ul classを付けたいの...
-
hiddenを使っているのに、表が...
おすすめ情報