php сомневается, как создать десять случайных пароль


Здравствуйте, у меня есть этот код, который похож, что я хочу. хорошо, что он генерировать числа от 1 до 10 и seguencia тип:
1
2
и горе будет.

я Хотел бы, что на месте числа, которые он произвел случайных паролей
типа:
w3e4r5
g6t5e4
и горе будет.

<?php 
for ($x = 1; $x <= 10; $x++) {
    echo "$x";
} 
?>
 1
php
Author: Hemerson Prestes, 2017-03-06

3 answers

PHP 7 имеется функция вызова random_bytes , если использовать преобразование крутящего момента ты hex, создает друг string похожи на те, что вы хотите.

<?php
// Usando a função random_bytes do PHP 7
for ($x = 1; $x <= 10; $x++) 
{
    echo bin2hex(random_bytes(3)) . "<br>"; // gera uma string pseudo-randômica criptograficamente segura de 6 caracteres
} 
?>

Пример вывода(меняется каждый раз, когда колеса сценарий):

eb5a35
ce5121
d5c514
e4eec4
48d781
52367c
ae39cd
5ef0ff
dfe681
0ac13f

Артикул: https://secure.php.net/manual/pt_BR/function.random-bytes.php


, Но если вы еще не используйте PHP7 или не понравилось, вариант с шестнадцатеричных используется в функции, существующие в PHP7, техника интересно, что я видел в Stack Overflow на английском языке и адаптирована здесь-это использование str_shuffle, функция, которая преобразует строки в случайном порядке. Эта функция присутствует в PHP начиная с PHP 4.

<?php


// Usando str_shuffle (mistura strings aleatoriamente)
for ($x = 1; $x <= 10; $x++) 
{

    //Inclua todos os caracteres que gostaria que aparecessem nas strings geradas
    $caracteres_q_farao_parte = 'abcdefghijklmnopqrstuvwxyz0123456789';

    $password = substr( str_shuffle($caracteres_q_farao_parte), 0, 6 );     

    echo $password . "<br>";

} 


?>

Пример вывода(выйдут разные каждый раз запускать скрипт):

yc7dj6
g57rt0
prwgdn
hctvog
d2l0cq
r78fp1
0z6c4e
95m8fa
19bnx5
vyw8p6

Артикул: http://php.net/manual/pt_BR/function.str-shuffle.php

 4
Author: Antonio Alexandre, 2017-03-06 03:54:34

Если вы действительно заботитесь о "необоснованно" с безопасности следует использовать LibSodium, он имеет обе функции, чтобы создать и преобразовать в шестнадцатеричное, я ответа это - , основанной на что я ответил, здесь.

for($gerar = 10; $gerar > 0; $gerar--){
    echo \Sodium\bin2hex( \Sodium\randombytes_buf(3) );
}

bin2hex оригинальной PHP, как ответил @Antonio Alexandre, является уязвимым для атак side-channel, а \Sodium\bin2hex является более устойчивым и этот тип атаки.

 3
Author: Inkeliz, 2017-04-13 12:59:42

Вот решение

     function randomPassword() {
        $alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
        $pass = array(); 
        $alphaLength = strlen($alphabet) - 1; 
        for ($i = 0; $i < 8; $i++) {
            $n = rand(0, $alphaLength);
            $pass[] = $alphabet[$n];
        }
        return implode($pass); 
    }

  for ($x = 1; $x <= 10; $x++) {
      echo randomPassword() .'<br>';
    }
 0
Author: Amadeu Antunes, 2017-03-06 02:26:55