PHP ile rastgele şifre oluşturmak nasıl?

8 Cevap php

Veya rasgele parolalar oluşturmak otomatik bir yazılım var mı?

8 Cevap

Sadece istenilen uzunluğa kadar rastgele az, AZ, 0-9 (veya istediğiniz) bir dize oluşturmak. İşte PHP bir örnek:

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;
}

Optimize etmek için, gibi $ karakter tanımlayabilirsiniz statik tek bir yürütme sırasında bu fonksiyonu birçok kez çağrı olacak eğer yöntemi (ya da üst sınıfta) değişken ya da sabit.

Burada basit bir çözüm var. Bu küçük harf ve sayıları içerir.

substr(str_shuffle(strtolower(sha1(rand() . time() . "my salt string"))),0, $PASSWORD_LENGTH);

Burada kuvvetli bir çözelti, rasgele arzu edilen bir aralık içinde rasgele bir uzunluk için arzu edilen karakter aralığında karakter kodlarını oluşturur bulunuyor.

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;
}

Ben oyun oynamak istiyorum. Basit yolu yapmak olacaktır:

function rand_passwd( $length = 8, $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' ) {
    return substr( str_shuffle( $chars ), 0, $length );
}

Bu hemen hemen ilk cevap sadece bir değişiklik olduğunu. Ikinci parametreleri ve ilk şifre uzunluğu istediğiniz karakterleri belirtin.

$password = hash('sha512', rand());

Hatırlamak çok zor olmamalıdır. Bu olsa hatırlamak kolay olabilir:

$password = substr(hash('sha512',rand()),0,12); // Reduces the size to 12 chars

Orada kullanılan sadece 16 olası karakter, ama bu (300.000 şifreleri / saniyede, o çatlak için 29 yıl alacağını) hala 16 ^ 12 olası şifreleri bulunuyor.

Ben aslında kendimi ben herhangi bir gücü şifreleri, onları kontrol ve isterseniz bunları kullanmak için çekinmeyin üreten GPL V2.0 altında yayınlanan iki kütüphaneleri yazdı.

Www.projects.semanticalsyntax.com Kaynak ikisi için DAİREMİZ.

Ben bir süre önce yazdı. Ama rastgele değil. Bu seçtiğiniz girdiler sağlamalarının dayalı şifreler üretir. Bu gerçekten rasgele şifre üreteci daha yararlı olabilir. -> http://trashb.in/pwgen

Şifre nesil uygulaması Javascript olduğunu, bu yüzden benim için ayrıntıları herhangi bir mesaj yok. Kullanmak ve / veya kodu kapmak için çekinmeyin.

Sadece kullanabilirsiniz PEAR's Text_Password package - Onları üretmek için epeyce algoritmalarını destekler; ve başka bir şey üzerine gitmek için zaman boşaltır.

Pwgen-php produces save, pronounceable (easier to remember) passwords: http://code.google.com/p/pwgen-php/

Bu kabul edilebilir olabilir?