#!/usr/bin/env php # Generate passwords # Author filipp@mac.co (.*)<\/body>/si', $words, $results); $words = $results[0]; $words = preg_replace('/.*?<\/script>/si', '', $words); $words = preg_replace('/.*?<\/style>/si', '', $words); $words = strip_tags($words); // May use HTML input } $len = (empty($argv[2])) ? 6 : $argv[2]; $max = (empty($argv[3])) ? 10 : $argv[3]; $outsep = (empty($argv[4])) ? "\n" : $argv[4]; $map = array( 'a' => '4', 'e' => '3', 'I' => '!', 'ä' => '2', 'l' => 'L', 'O' => '0', 'ö' => '8', 'Ö' => '8', 'i' => '1' ); preg_match_all('/\w{'.$len.',}/i', $words, $okwords); if (empty($okwords[0])) { die("Sorry, no suitable words found in wordlist!\n"); } $out = array(); for ($i=0; $i < $max; $i++) { $idx = rand(0, count($okwords[0])); $word = $okwords[0][$idx]; $mapped = str_replace(array_keys($map), array_values($map), $word); $word = mb_strtolower($mapped); $split = rand(1, strlen($word)); $tmp = ucwords(chunk_split($word, $split, " ")); $out[] = str_replace(" ", "", $tmp); } echo implode($outsep, $out); ?>