Membuat Password Generator


Alasan mengapa penulis mengangkat topik ini untuk dijadikan judul adalah terkadang beberapa user, maupun web administrator kesulitan membuat password yang cukup baik, dan kebanyakan juga mencari-cari password yang nantinya diharapkan password tersebut jauh dari kegiatan iseng seperti cracking password dengan metode brute force ataupun pencocokan password dengan metode dictionary. Seperti artikel yang pernah penulis buat sebelumnya, mengenai konsep sederhana joomla password cracker. Pada artikel tersebut di perlihatkan begitu mudahnya password di dapatkan hanya dengan mencocokan password yang asli dengan kamus password yang ada. Hal yang nantinya penulis jelaskan adalah mencoba untuk menggiring anda untuk membuat password yang aman, walaupun seperti yang pernah penulis katakan sebelumnya “Tidak ada yang aman 100% dalam dunia maya.” Semua memiliki resiko tentunya. Dan untuk implementasinya itu semua tergantung kreatifitas anda dalam menggunakan password generator.

Script lengkapnya sebagai berikut :


// password.gen.php

<?php

function make_password($num_chars) {
if ((is_numeric($num_chars)) && ($num_chars >= 6) && (! is_null($num_chars))) {

$password = “”;
$accepted_chars = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ1234567890~!@#$%^&*+|}{:>?<“;

srand(((int)((double)microtime()*1000003)) );

for ($i=1; $i<=$num_chars; $i++) {
$random_number = rand(0, (strlen($accepted_chars) -1));
$password .= $accepted_chars[$random_number] ;
}

return $password;
}

else
{
echo “Password harus lebih dari 6″;
}
}

?>

<html><head><title>Password Generator</title></head>
<body>
Password anda : <br><font style=’BACKGROUND-COLOR:yellow’><b>
<?php echo make_password($_POST[‘size’]); ?>
</b></font><br>
<form action=”<?php echo $_SERVER[‘PHP_SELF’]; ?>” method=”POST”>
<input type=”text” name=”size” value=”<?php echo $_POST[‘size’]; ?>” >
<input type=”submit” name=”submit” value=”Buat!!”>
</form>
</body>
</html>

Penulis coba jelaskan bagian yang intinya saja …

if ((is_numeric($num_chars)) &&  ($num_chars >= 6) &&  (! is_null($num_chars))) {
Jika inputan yang di masukkan oleh user adalah angka/bilangan numeric, dan jumlahnya karakter  lebih dari 6 digit maka …

$password = “”;

$accepted_chars = ” abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV WYZ1234567890~!@#$%^&*+|}{:>?<“;
Siapkan karakter, angka, dan spesial karakter yang nantinya akan dijadikan password.

srand(((int)((double)microtime()*1000003)) );
Kemudian Lakukan randomisasi kemungkinan karakter, angka, ataupun spesial karakter yang nantinya di ambil menjadi bagian dari password.

for ($i=1; $i<=$num_chars; $i++)
{
Lakukan pengulangan sebanyak inputan yang dimasukkan …

$random_number = rand(0, (strlen($accepted_chars) -1));
Buat randomisasi  pemilihan karakter, angka, spesial karakter, dari kumpulan karakter yang telah dipersiapkan sebelumnya…

$password .= $accepted_chars[$random_number] ;
Masukkan satu persatu karakter yang diambil kedalam variable $password

}

Sampai sini penulis rasa cukup jelas, jika ada yang di tanyakan silahkan kirim pertanyaan tersebut ke email penulis : adit_spewv@yahoo.com

Script tersebut dapat didownload di sini

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: