Bagaimana cara menghasilkan kata sandi acak sederhana dari string tertentu menggunakan PHP?

Bagaimana cara menghasilkan kata sandi acak sederhana dari string tertentu menggunakan PHP?

Pada artikel ini, kita akan melihat cara membuat kata sandi acak menggunakan string yang diberikan. Kami telah memberikan string dan tugasnya adalah menghasilkan kata sandi acak darinya.

Contoh:

Input:  abgADKL123
Output: abgADKL123

Input:  geeksforgeeks
Output:    egksegsfroeke

Untuk mencapai ini, kami menggunakan pendekatan berikut.

Pendekatan 1: Dalam pendekatan ini, kami menggunakan PHP rand () berfungsi dan membuat variabel sementara, dan menggunakan for loop kita membuat karakter acak dari string yang diberikan dan menggabungkan karakter itu ke variabel sementara. Berikut adalah implementasi dari pendekatan ini.

Kode PHP:

PHP

<?php

    

function get_password($str, $len = 0) {

     

    

    $pass = "";

     

    

    

    $str_length = strlen($str);

  

    

    

    

    if($len == 0 || $len > $str_length){

        $len = $str_length;

    }

  

    

    

    

    for($i = 0;  $i < $len; $i++){

         

        

        

        $pass .=  $str[rand(0, $str_length)];

    }

    return $pass;

}

  

  

$str = "GeeksForGeeks";

echo get_password($str, 5) . "n<br/>";

  

$str

"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";

echo get_password($str, 15) ."n<br/>";

  

echo get_password($str) . "n<br/>";

  

?>

Keluaran:

skGse
iWwf9jWZZE9ZL7O
GhRQ8zK4wpX93srUj1LhjsBEeBwBwo4Bh43RyZeSFZbwjVoonkKBgfXiBrEpY

Pendekatan 2: Dalam pendekatan ini, kami menggunakan PHP str_shuffle(), dan kemudian kami menggunakan substr () berfungsi untuk mengekstrak bagian dari string yang diberikan.

Kode PHP:

PHP

<?php

    

function get_password($str, $len = 0) {

     

    

    $pass = "";

    

    

    

    $str_length = strlen($str);

  

    

    

    

    if($len == 0 || $len > $str_length){

        $len = $str_length;

    }

  

    

    $pass = str_shuffle($str);

        

    

    $pass = substr($pass, 0, $len);

    

    return $pass;

}

  

$str = "GeeksForGeeks";

echo get_password($str) . "n<br/>";

  

$str

"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";

echo get_password($str, 15) ."n<br/>";

  

echo get_password($str) . "n<br/>";

  

?>

Keluaran:

oeFssGkeGrkee
rxIhAjCi47wgW1z
r4LZQqlOFGU36i7gEAtzwsnduNXhHKD92ajpxBJc1MRvVmbyeokPIWfCTSY85