または、ランダムなパスワードを自動生成するソフトウェアはありますか?
ランダムなa-z
、A-Z
、0-9
(またはあなたが望むもの)望ましい長さまで。 PHPの例を次に示します。
function generatePassword($length = 8) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$count = mb_strlen($chars);
for ($i = 0, $result = ''; $i < $length; $i++) {
$index = Rand(0, $count - 1);
$result .= mb_substr($chars, $index, 1);
}
return $result;
}
最適化するには、$chars
単一の実行中にこの関数を何度も呼び出す場合は、メソッドの静的変数または定数として(または親クラス)。
これが簡単な解決策です。小文字と数字が含まれます。
substr(str_shuffle(strtolower(sha1(Rand() . time() . "my salt string"))),0, $PASSWORD_LENGTH);
強力なソリューションは、希望する範囲内のランダムな長さで、希望する文字範囲の文字コードをランダムに生成します。
function generateRandomPassword() {
//Initialize the random password
$password = '';
//Initialize a random desired length
$desired_length = Rand(8, 12);
for($length = 0; $length < $desired_length; $length++) {
//Append a random ASCII character (including symbols)
$password .= chr(Rand(32, 126));
}
return $password;
}
ゲームをプレイしたいです。最も簡単な方法は次のとおりです。
function Rand_passwd( $length = 8, $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' ) {
return substr( str_shuffle( $chars ), 0, $length );
}
これは、最初の回答を修正しただけです。 2番目のパラメーターで必要な文字を指定し、最初のパラメーターでパスワードの長さを指定します。
これが私のやり方です。
$pw = "";
for ($i = 0; $i < 13; $i++)
{
$pw .= chr(Rand(33, 126));
}
これは、最小長、最小桁数、最小文字数のパスワードを生成する関数です。
function generatePassword() {
$min_length=8; //Minimum length of the password
$min_numbers=2; //Minimum of numbers AND special characters
$min_letters=2; //Minimum of letters
$password = '';
$numbers=0;
$letters=0;
$length=0;
while ( $length <= $min_length OR $numbers <= $min_numbers OR $letters <= $min_letters) {
$length+=1;
$type=Rand(1, 3);
if ($type==1) {
$password .= chr(Rand(33, 64)); //Numbers and special characters
$numbers+=1;
}elseif ($type==2) {
$password .= chr(Rand(65, 90)); //A->Z
$letters+=1;
}else {
$password .= chr(Rand(97, 122)); //a->z
$letters+=1;
}
}
return $password;
}
適切なパスワードは、大文字、小文字、数字、文字、特殊文字、および6文字以上の両方を組み合わせたものにする必要があります。アプリで使用する機能は次のとおりです。
function randomPassword( $length = 8 )
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?";
$length = Rand(10, 16);
$password = substr( str_shuffle(sha1(Rand() . time()) . $chars ), 0, $length );
return $password;
}
また、私が書いた私のブログから利用できる機能を試すこともできます。この関数の利点は、小文字、大文字、数字、特殊文字を同等に重要にすることです。ここにあります PHPランダムパスワードジェネレーター関数
ランダムな文字の配列をシャッフルするのが好きです
$a = str_split("abcdefghijklmnopqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXY0123456789");
shuffle($a);
echo implode($a); //maxlength
echo "\n".substr( implode($a), 0, 10 ); //instead of 10 => any length
//As function:
function getMeRandomPwd($length){
$a = str_split("abcdefghijklmnopqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXY0123456789");
shuffle($a);
return substr( implode($a), 0, $length );
}
echo "\n".getMeRandomPwd(8)."\n".getMeRandomPwd(11);
// Outpus something like:
// 3Ai4Xf6R2I8bYGUmKgB9jpqo7ncV5teuQhkOHJCNrTP0sLFd1wxSMlEWvyaD
// 3Ai4Xf6R2I
// JsBKWFDa
// gfxsjr3dX70
パスワードを長くする必要がある場合は、charlistを数回連結するだけです:)
私はst_splitを使用し、関数を分解します:
function genarateKey(){
$limit= 8;
$chars= 'abcdefghijklmnopqrstuvxwyz1234567890!@#$%^&*()_+=-[]{}\|ABCDEFGHIJKLMNOPQRSTUVXWYZ';
$chararray= str_split($chars);
$gen=array();
for($i=0;$i<$limit;$i++){
$index=Rand(0,strlen($chars)-1);
$gen[$i]= $chararray[$index];
}
return implode($gen); //converts array to string
}
この関数は、ほとんどの修正されたソリューションよりも強力なパスワードを生成します。
function generatePassword($size=8){
$p = openssl_random_pseudo_bytes(ceil($size*0.67), $crypto_strong);
$p = str_replace('=', '', base64_encode($p));
$p = strtr($p, '+/', '^*');
return substr($p, 0, $size);
}
パスワードの各文字は[A-Z]または[a-z]または^または*になります
この関数には、半角数字と半角数字が含まれます。
function generateMixedPassword($length = 8) {
$base = 'abcdefghijklmnopqrstuvwxyz';
$baseD = '0123456789';
$r = array();
for ($i = 0; $i < $length; $i += 2) {
$r[] = substr($base, Rand(0, strlen($base) - 1), 1);
}
for ($i = 0; $i < $length; $i += 2) {
$r[] = substr($baseD, Rand(0, strlen($baseD) - 1), 1);
}
shuffle($r);
return implode('', $r);
}
同じログインを使用して、特殊文字も含めるように拡張できます
_hackzilla/password-generator
_ を使用します
さまざまな種類のパスワードを作成するための多くのオプションがあります。
ComputerPasswordGenerator()
HybridPasswordGenerator()
-> _sjgX-PFjH-zxMz-PRDz-G6mx-wMJ4-ST24
_HumanPasswordGenerator()
-> _Verkuemmerungen-verlottertet-dreinzuschauen
_(単語リストベース。この場合はドイツ語の単語リスト)RequirementPasswordGenerator()
ComputerPasswordGenerator
_$generator
->setOptionValue(ComputerPasswordGenerator::OPTION_UPPER_CASE, true)
->setOptionValue(ComputerPasswordGenerator::OPTION_LOWER_CASE, true)
->setOptionValue(ComputerPasswordGenerator::OPTION_NUMBERS, true)
->setOptionValue(ComputerPasswordGenerator::OPTION_SYMBOLS, false)
;
$password = $generator->generatePassword();
_
要件PasswordGenerator
_$generator
->setLength(16)
->setOptionValue(RequirementPasswordGenerator::OPTION_UPPER_CASE, true)
->setOptionValue(RequirementPasswordGenerator::OPTION_LOWER_CASE, true)
->setOptionValue(RequirementPasswordGenerator::OPTION_NUMBERS, true)
->setOptionValue(RequirementPasswordGenerator::OPTION_SYMBOLS, true)
->setMinimumCount(RequirementPasswordGenerator::OPTION_UPPER_CASE, 2)
->setMinimumCount(RequirementPasswordGenerator::OPTION_LOWER_CASE, 2)
->setMinimumCount(RequirementPasswordGenerator::OPTION_NUMBERS, 2)
->setMinimumCount(RequirementPasswordGenerator::OPTION_SYMBOLS, 2)
->setMaximumCount(RequirementPasswordGenerator::OPTION_UPPER_CASE, 8)
->setMaximumCount(RequirementPasswordGenerator::OPTION_LOWER_CASE, 8)
->setMaximumCount(RequirementPasswordGenerator::OPTION_NUMBERS, 8)
->setMaximumCount(RequirementPasswordGenerator::OPTION_SYMBOLS, 8)
;
$password = $generator->generatePassword();
_
これを行う別の非常に簡単な(そして安全な!)方法は次のとおりです(私は自分のパスワードをすべてそのように生成します):
base64_encode(random_bytes(12));
これにより、かなりの範囲の文字を使用する16文字のパスワードが生成されます。
ただし、要件に応じて(たとえば、ユーザーがパスワードを入力する必要がある場合)、混同される文字(l、I、1、0、O、5、Sなど)を削除することが望ましい場合があります。に)。その場合、上記のソリューションはおそらく少し単純すぎます。
PEARのText_Passwordパッケージ を使用するだけで済みます-それらを生成するためのかなりの数のアルゴリズムをサポートします。他のことをする時間を確保できます。
Pwgen-phpは保存可能な発音可能な(覚えやすい)パスワードを生成します。 http://code.google.com/p/pwgen-php/
それは受け入れられるでしょうか?
ランダムなパスワードを生成するより良い方法は、関数の下にあると思います。誰かが望むなら、これらを強力なパスワードに使用できます
public function randPassword($upper = 2, $lower = 3, $numeric = 2, $other = 1) {
$pass_order = Array();
$passWord = '';
//Create contents of the password
for ($i = 0; $i < $upper; $i++) {
$pass_order[] = chr(Rand(65, 90));
}
for ($i = 0; $i < $lower; $i++) {
$pass_order[] = chr(Rand(97, 122));
}
for ($i = 0; $i < $numeric; $i++) {
$pass_order[] = chr(Rand(48, 57));
}
for ($i = 0; $i < $other; $i++) {
$pass_order[] = chr(Rand(33, 47));
}
//using shuffle() to shuffle the order
shuffle($pass_order);
//Final password string
foreach ($pass_order as $char) {
$passWord .= $char;
}
return $passWord;
}
function generate_password($length = 6) {
$password = '';
$chars = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9));
for ($i = 0; $i < $length; $i ++) {
$password .= $chars[array_Rand($chars)];
}
return $password;
}
これはランダムなパスワードを作成するのに役立ちます:
<?php
function generatePassword ($length = 8)
{
$genpassword = "";
$possible = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$i = 0;
while ($i < $length) {
$char = substr($possible, mt_Rand(0, strlen($possible)-1), 1);
if (!strstr($genpassword, $char)) {
$genpassword .= $char;
$i++;
}
}
return $genpassword;
}
?>
<input type="text" value="<?php echo generatePassword(); ?>">
思い出に残るパスワードジェネレーター
function password($length)
{
$vowel = array(
'a',
'e',
'i',
'o',
'u',
);
$consonant = array(
'b',
'c',
'd',
'f',
'g',
'h',
'j',
'k',
'l',
'm',
'n',
'p',
'q',
'r',
's',
't',
'v',
'w',
'x',
'y',
'z',
);
$result = '';
for ($i = 0; $i < $length; $i++) {
if ($i % 2 == 0) {
$result .= $consonant[Rand(0, 15)];
} else {
$result .= $vowel[Rand(0, 4)];
}
}
return $result;
}
結果:
password(8);//kutekaku
password(11);//rahubabatul