Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.95 KB | None | 0 0
  1. <?php
  2. ini_set('memory_limit', '-1');
  3. function rotateArray(&$arr) {
  4. $keys = array_keys($arr);
  5. $val = $arr[$keys[0]];
  6. unset($arr[$keys[0]]);
  7. $arr[$keys[0]] = $val;
  8. }
  9.  
  10. $alpha = [
  11. ',' => '?',
  12. '.' => '/',
  13. 'а' => 'f',
  14. 'б' => ',',
  15. 'в' => 'd',
  16. 'г' => 'u',
  17. 'д' => 'l',
  18. 'е' => 't',
  19. 'ё' => '`',
  20. 'ж' => ';',
  21. 'з' => 'p',
  22. 'и' => 'b',
  23. 'й' => 'q',
  24. 'к' => 'r',
  25. 'л' => 'k',
  26. 'м' => 'v',
  27. 'н' => 'y',
  28. 'о' => 'j',
  29. 'п' => 'g',
  30. 'р' => 'h',
  31. 'с' => 'c',
  32. 'т' => 'n',
  33. 'у' => 'e',
  34. 'ф' => 'a',
  35. 'х' => '[',
  36. 'ц' => 'w',
  37. 'ш' => 'i',
  38. 'щ' => 'o',
  39. 'ъ' => ']',
  40. 'ы' => 's',
  41. 'ь' => 'm',
  42. 'э' => '\'',
  43. 'ю' => '.',
  44. 'я' => 'z',
  45. 'А' => 'F',
  46. 'Б' => '<',
  47. 'В' => 'D',
  48. 'Г' => 'U',
  49. 'Д' => 'L',
  50. 'Е' => 'T',
  51. 'Ё' => '~',
  52. 'Ж' => ':',
  53. 'З' => 'P',
  54. 'И' => 'B',
  55. 'Й' => 'Q',
  56. 'К' => 'R',
  57. 'Л' => 'K',
  58. 'М' => 'V',
  59. 'Н' => 'Y',
  60. 'О' => 'J',
  61. 'П' => 'G',
  62. 'Р' => 'H',
  63. 'С' => 'C',
  64. 'Т' => 'N',
  65. 'У' => 'E',
  66. 'Ф' => 'A',
  67. 'Х' => '{',
  68. 'Ц' => 'W',
  69. 'Ш' => 'I',
  70. 'Щ' => 'O',
  71. 'Ъ' => '}',
  72. 'Ы' => 'S',
  73. 'Ь' => 'M',
  74. 'Э' => '"',
  75. 'Ю' => '>',
  76. 'Я' => 'Z'
  77. ];
  78.  
  79. function replaceAlpha($str) {
  80. global $alpha;
  81. $strarr = preg_split('//u', $str, null, PREG_SPLIT_NO_EMPTY);
  82. for($i = 0; $i < count($strarr); $i++) {
  83. if(isset($alpha[$strarr[$i]])) {
  84. $strarr[$i] = $alpha[$strarr[$i]];
  85. }
  86. }
  87. return implode('',$strarr);
  88. }
  89.  
  90. $line_test = [
  91. ['t11','t12','t13','t14'],
  92. ['t21','t22','t23'],
  93. ['t31','t32','t33','t34','t35'],
  94. ['t41','t42'],
  95. ['t51','t52','t53'],
  96. ];
  97.  
  98. /*$line = [
  99. 0 => ['ка','Ка','если','Если','как','Как'],
  100. 1 => ['б','Б','бы','Бы'],
  101. 2 => ['не','Не','ни','Ни'],
  102. 3 => ['было','Было','была','Была'],
  103. 4 => ['зимы','Зимы','земы','Земы'],
  104. 5 => ['в','В'],
  105. 6 => ['городах','Городах','горадах','Горадах','гарадах','Гарадах','гародах','Гародах'],
  106. 7 => ['и','И'],
  107. 8 => ['селах','Селах','сёлах','Сёлах','сЁлах','СЁлах'],
  108. 9 => ['не','Не','ни','Ни'],
  109. 10 => ['когда','Когда','кагда','Кагда'],
  110. 11 => ['б','Б','бы','Бы'],
  111. 12 => ['не','Не','ни','Ни'],
  112. 13 => ['знали','Знали','знале','Знале'],
  113. 14 => ['мы','Мы'],
  114. 15 => ['этих','Этих','етих','Етих','этех','Этех','етех','Етех'],
  115. 16 => ['дней','Дней','днеи','Днеи'],
  116. 17 => ['веселых','Веселых','весёлых','Весёлых','весЁлых','ВесЁлых','виселых','Виселых','висёлых','Висёлых','висЁлых','ВисЁлых'],
  117. 18 => ['не','Не','ни','Ни'],
  118. 19 => ['к','К'],
  119. ];*/
  120.  
  121. /*$line = [
  122. 0 => ['ка','Ка','если','Если','как','Как'],
  123. 1 => ['б','Б','бы','Бы'],
  124. 2 => ['не','Не','ни','Ни'],
  125. 3 => ['было','Было','была','Была'],
  126. 4 => ['Зимы','Земы'],
  127. 5 => ['в','В'],
  128. 6 => ['городах','Городах','горадах','Горадах','гарадах','Гарадах','гародах','Гародах'],
  129. 7 => ['и'],
  130. 8 => ['Селах','Сёлах'],
  131. 9 => ['не','Не','ни','Ни'],
  132. 10 => ['когда','Когда','кагда','Кагда'],
  133. 11 => ['б','Б','бы','Бы'],
  134. 12 => ['не','Не','ни','Ни'],
  135. 13 => ['знали','Знали','знале','Знале'],
  136. 14 => ['мы','Мы'],
  137. 15 => ['Этих','Етих','Этех','Етех'],
  138. 16 => ['Дней','Днеи'],
  139. 17 => ['Веселых','Весёлых','Виселых','Висёлых'],
  140. 18 => ['не','Не','ни','Ни'],
  141. 19 => ['к','К'],
  142. ];*/
  143.  
  144. /*$line = [
  145. 0 => ['кабы','ка бы'],
  146. 1 => ['не было','небыло', 'ни было', 'нибыло'],
  147. 2 => ['зимы', 'земы'],
  148. 3 => ['вгородах','вгародах', 'вгарадах','в городах','в гародах','в гарадах'],
  149. 4 => ['и'],
  150. 5 => ['селах','cёлах'],
  151. 6 => ['некогда','никогда','не когда','ни когда'],
  152. 7 => ['б','бы'],
  153. 8 => ['незнали','низнали','не знали','ни знали'],
  154. 9 => ['мы'],
  155. 10 => ['этих','этех'],
  156. 11 => ['дней'],
  157. 12 => ['веселых','весёлых','виселых']
  158. ];*/
  159.  
  160. /*$line = [
  161. 0 => ['Кабы','Ка бы','Если','Еслиб','Если б'],
  162. 1 => ['Небыло','не Было','неБыло','не было'],
  163. 2 => ['Зимы','зимы'],
  164. 3 => ['Вгородах','вГородах','в Городах','вгородах','в городах'],
  165. 4 => ['и','И'],
  166. 5 => ['Селах','селах'],
  167. 6 => ['Никогда','ниКогда','ни Когда','никогда','ни когда'],
  168. 7 => ['б','Б','бы','Бы'],
  169. 8 => ['Незнали','неЗнали','не Знали','незнали','не знали'],
  170. 9 => ['мы','Мы'],
  171. //10 => ['Этих','этих'],
  172. //11 => ['Дней','дней'],
  173. //12 => ['Веселых','веселых']
  174. ];
  175. $line = [
  176. 0 => ['Кабы','Ка бы','Если','Еслиб','Если б'],
  177. 1 => ['Небыло','не Было','неБыло','не было'],
  178. 2 => ['Зимы','зимы'],
  179. 3 => ['Вгородах','вГородах','в Городах','вгородах','в городах'],
  180. 4 => ['и','И'],
  181. 5 => ['Селах','селах'],
  182. 6 => [
  183. 'Никогда','ниКогда','ни Когда','никогда','ни когда',
  184. 'Никогда б','ниКогда б','ни Когда б','никогда б','ни когда б',
  185. 'Никогдаб','ниКогдаб','ни Когдаб','никогдаб','ни когдаб'],
  186. 7 => ['Незнали','неЗнали','не Знали','незнали','не знали'],
  187. 8 => ['мы','Мы'],
  188. //9 => ['Этих','этих'],
  189. //10 => ['Дней','дней'],
  190. //11 => ['Веселых','веселых']
  191. ];
  192.  
  193. $line = [
  194. 0 => [
  195. 'Вотбы','Вот бы',
  196. 'Кабы','Ка бы',
  197. 'Как бы','Какбы',
  198. 'Если','Еслиб','Если б',
  199. 'Еслибы','Если бы'
  200. ],
  201. 1 => [
  202. 'Небыло','не Было','неБыло',
  203. 'Небыла','не Была','неБыла'
  204. ],
  205. 2 => ['Зимы','Земы'],
  206. 3 => [
  207. 'Вгородах','в Городах',
  208. 'Вгорадах','в Горадах'
  209. ],
  210. 4 => ['и'],
  211. 5 => ['Селах','Сёлах'],
  212. 6 => [
  213. 'Никогда','ни Когда',
  214. 'Никогда б','ни Когда б',
  215. 'Никогдаб','ни Когдаб',
  216. 'Некогда','не Когда',
  217. 'Некогда б','не Когда б',
  218. 'Некогдаб','не Когдаб',
  219.  
  220. 'Никагда','ни Кагда',
  221. 'Никагда б','ни Кагда б',
  222. 'Никагдаб','ни Кагдаб',
  223. 'Некагда','не Кагда',
  224. 'Некагда б','не Кагда б',
  225. 'Некагдаб','не Кагдаб'
  226. ],
  227. 7 => [
  228. 'Незнали','не Знали',
  229. 'Низнали','ни Знали'
  230. ],
  231. 8 => ['Мы','МЫ'],
  232. 9 => ['Этих','Этех'],
  233. 10 => ['Дней'],
  234. 11 => [
  235. 'Веселых','Весёлых',
  236. 'Виселых','Висёлых'
  237. ],
  238. 12 => ['не']
  239. ];
  240. */
  241. $line = [
  242. 0 => [
  243. 'Кабы','Ка бы','Еслиб','Если б','Вотбы','Вот бы'
  244. /*,'Как бы','Какбы','кабы','ка бы','еслиб','если б','еслеб','есле б','вотбы','вот бы','как бы','какбы'*/
  245. ],
  246. 1 => [
  247. 'не Было','Небыло','ни Было','Нибыло'
  248. ],
  249. 2 => ['Зимы','Земы'],
  250. 3 => [
  251. 'в Городах','Вгородах','в Горадах','Вгорадах'
  252. ],
  253. 4 => ['и','И'],
  254. 5 => ['Селах','Сёлах'],
  255. 6 => [
  256. 'Никогдаб','ни Когдаб','Никогда б','ни Когда б','Ни Когдаб','Ни Когда б',
  257. 'Некогдаб','не Когдаб','Некогда б','не Когда б','Не Когдаб','Не Когда б'
  258. ],
  259. 7 => [
  260. 'Незнали','Не Знали','не Знали',
  261. 'Низнали','Ни Знали','ни Знали'
  262. ],
  263. 8 => ['Мы','мы'],
  264. 9 => ['Этих','Этех'],
  265. 10 => ['Дней'],
  266. 11 => ['Веселых']
  267. ];
  268.  
  269.  
  270.  
  271.  
  272. $spec = [
  273. '!','@','#','$','%','^','&','*','(',')','_','+'
  274. ];
  275.  
  276. function appendSpec($line) {
  277. global $spec;
  278. if(strlen($line) < 64) {
  279. for($i = 0; $i < 65 - strlen($line); $i++) {
  280. $line .= $spec[$i];
  281. }
  282. }
  283. return $line;
  284. }
  285.  
  286. function fillArr(&$arr,$key) {
  287. global $line;
  288. if(empty($arr)) {
  289. $arr = $line[0];
  290. }
  291. $promarr = [];
  292. for($i = 0; $i < count($arr); $i++) {
  293. $word = $arr[$i];
  294. for ($k = 0; $k < count($line[$key]); $k++) {
  295. $promarr[] = $word.' '.$line[$key][$k];
  296. }
  297. }
  298. $arr = $promarr;
  299. $key++;
  300. if($key < count($line)) {
  301. fillArr($arr,$key);
  302. }
  303. }
  304.  
  305. function findPos($arr,$find) {
  306. for($i = 0; $i < count($arr); $i++) {
  307. if((is_array($find) && in_array($arr[$i],$find)) || $arr[$i] === $find) {
  308. return $i;
  309. }
  310. }
  311. }
  312.  
  313. $arr = [];
  314. var_dump('phase1');
  315. fillArr($arr,1);
  316. $c = 1;
  317. foreach ($line as $l) {
  318. $c *= count($l);
  319. }
  320. //$strokes = implode("\n",$arr);
  321. var_dump($c);
  322. $pos = [];
  323. for($i = 0; $i < count($line) - 1; $i++) {
  324. $pos[] = $i;
  325. }
  326.  
  327. $strokes = [];
  328.  
  329. $delimeters = ['_'/*,' ','-'*/];
  330.  
  331. var_dump('phase2');
  332. foreach ($arr as $res) {
  333. $strokes[] = $res;
  334. /*
  335. $r = $res;
  336. $d = explode(' ',$r);
  337. $p = findPos($d,$line[5]);
  338. $d[$p] = $d[$p].', '.$d[$p+1];
  339. unset($d[$p+1]);
  340. $r = implode(' ', $d);
  341. $strokes[] = $r;
  342.  
  343. $r = $res;
  344. $d = explode(' ',$r);
  345. $p = findPos($d,$line[5]);
  346. $d[$p] = $d[$p].'. '.$d[$p+1];
  347. unset($d[$p+1]);
  348. $r = implode(' ', $d);
  349. $strokes[] = $r;
  350.  
  351. $r = $res;
  352. $d = explode(' ',$r);
  353. $p = findPos($d,$line[5]);
  354. $d[$p] = $d[$p].'б '.$d[$p+1];
  355. unset($d[$p+1]);
  356. $r = implode(' ', $d);
  357. $strokes[] = $r;
  358.  
  359. $r = $res;
  360. $d = explode(' ',$r);
  361. $p = findPos($d,$line[5]);
  362. $d[$p] = $d[$p].'ю '.$d[$p+1];
  363. unset($d[$p+1]);
  364. $r = implode(' ', $d);
  365. $strokes[] = $r;
  366.  
  367. $r = $res;
  368. $d = explode(' ',$r);
  369. $p = findPos($d,$line[5]);
  370. $d[$p] = $d[$p].'Б '.$d[$p+1];
  371. unset($d[$p+1]);
  372. $r = implode(' ', $d);
  373. $strokes[] = $r;
  374.  
  375. $r = $res;
  376. $d = explode(' ',$r);
  377. $p = findPos($d,$line[5]);
  378. $d[$p] = $d[$p].'Ю '.$d[$p+1];
  379. unset($d[$p+1]);
  380. $r = implode(' ', $d);
  381. $strokes[] = $r;
  382. */
  383. /*
  384. $r = $res;
  385. $d = explode(' ',$r);
  386. $p = findPos($d,$line[5]);
  387. $d[$p] = $d[$p].','.$d[$p+1];
  388. unset($d[$p+1]);
  389. $r = implode(' ', $d);
  390. $strokes[] = $r;
  391. */
  392. /*
  393. $r = $res;
  394. $d = explode(' ',$r);
  395. $p = findPos($d,$line[5]);
  396. $d[$p] = $d[$p].'.'.$d[$p+1];
  397. unset($d[$p+1]);
  398. $r = implode(' ', $d);
  399. $strokes[] = $r;
  400.  
  401. $r = $res;
  402. $d = explode(' ',$r);
  403. $p = findPos($d,$line[5]);
  404. $d[$p] = $d[$p].'б'.$d[$p+1];
  405. unset($d[$p+1]);
  406. $r = implode(' ', $d);
  407. $strokes[] = $r;
  408.  
  409. $r = $res;
  410. $d = explode(' ',$r);
  411. $p = findPos($d,$line[5]);
  412. $d[$p] = $d[$p].'ю'.$d[$p+1];
  413. unset($d[$p+1]);
  414. $r = implode(' ', $d);
  415. $strokes[] = $r;
  416.  
  417. $r = $res;
  418. $d = explode(' ',$r);
  419. $p = findPos($d,$line[5]);
  420. $d[$p] = $d[$p].'Б'.$d[$p+1];
  421. unset($d[$p+1]);
  422. $r = implode(' ', $d);
  423. $strokes[] = $r;
  424.  
  425. $r = $res;
  426. $d = explode(' ',$r);
  427. $p = findPos($d,$line[5]);
  428. $d[$p] = $d[$p].'Ю'.$d[$p+1];
  429. unset($d[$p+1]);
  430. $r = implode(' ', $d);
  431. $strokes[] = $r;*/
  432.  
  433. foreach ($delimeters as $del) {
  434. $r = $res;
  435. /*$d = explode(' ',$r);
  436. $r = implode(' ', $d);
  437. $strokes[] = $res;*/
  438. $strokes[] = str_replace(' ',$del,$r);
  439. //$strokes[] = implode($del, $d);
  440. /*
  441. $r = $res;
  442. $d = explode(' ',$r);
  443. $p = findPos($d,$line[5]);
  444. $d[$p] = $d[$p].','.$del.$d[$p+1];
  445. unset($d[$p+1]);
  446. $r = implode(' ', $d);
  447. $strokes[] = str_replace(' ',$del,$r);
  448. $strokes[] = implode($del, $d);
  449. */
  450. /*
  451. $r = $res;
  452. $d = explode(' ',$r);
  453. $p = findPos($d,$line[5]);
  454. $d[$p] = $d[$p].'.'.$del.$d[$p+1];
  455. unset($d[$p+1]);
  456. $r = implode(' ', $d);
  457. $strokes[] = str_replace(' ',$del,$r);
  458. $strokes[] = implode($del, $d);
  459.  
  460. $r = $res;
  461. $d = explode(' ',$r);
  462. $p = findPos($d,$line[5]);
  463. $d[$p] = $d[$p].'б'.$del.$d[$p+1];
  464. unset($d[$p+1]);
  465. $r = implode(' ', $d);
  466. $strokes[] = str_replace(' ',$del,$r);
  467. $strokes[] = implode($del, $d);
  468.  
  469. $r = $res;
  470. $d = explode(' ',$r);
  471. $p = findPos($d,$line[5]);
  472. $d[$p] = $d[$p].'ю'.$del.$d[$p+1];
  473. unset($d[$p+1]);
  474. $r = implode(' ', $d);
  475. $strokes[] = str_replace(' ',$del,$r);
  476. $strokes[] = implode($del, $d);
  477.  
  478. $r = $res;
  479. $d = explode(' ',$r);
  480. $p = findPos($d,$line[5]);
  481. $d[$p] = $d[$p].'Б'.$del.$d[$p+1];
  482. unset($d[$p+1]);
  483. $r = implode(' ', $d);
  484. $strokes[] = str_replace(' ',$del,$r);
  485. $strokes[] = implode($del, $d);
  486.  
  487. $r = $res;
  488. $d = explode(' ',$r);
  489. $p = findPos($d,$line[5]);
  490. $d[$p] = $d[$p].'Ю'.$del.$d[$p+1];
  491. unset($d[$p+1]);
  492. $r = implode(' ', $d);
  493. $strokes[] = str_replace(' ',$del,$r);
  494. $strokes[] = implode($del, $d);
  495. */
  496. /*
  497. $r = $res;
  498. $d = explode(' ',$r);
  499. $p = findPos($d,$line[5]);
  500. $d[$p] = $d[$p].' , '.$d[$p+1];
  501. unset($d[$p+1]);
  502. $r = implode(' ', $d);
  503. $strokes[] = str_replace(' ',$del,$r);
  504. $strokes[] = implode($del, $d);
  505. */
  506. /*
  507. $r = $res;
  508. $d = explode(' ',$r);
  509. $p = findPos($d,$line[5]);
  510. $d[$p] = $d[$p].'.'.$d[$p+1];
  511. unset($d[$p+1]);
  512. $r = implode(' ', $d);
  513. $strokes[] = str_replace(' ',$del,$r);
  514. $strokes[] = implode($del, $d);
  515.  
  516. $r = $res;
  517. $d = explode(' ',$r);
  518. $p = findPos($d,$line[5]);
  519. $d[$p] = $d[$p].'б'.$d[$p+1];
  520. unset($d[$p+1]);
  521. $r = implode(' ', $d);
  522. $strokes[] = str_replace(' ',$del,$r);
  523. $strokes[] = implode($del, $d);
  524.  
  525. $r = $res;
  526. $d = explode(' ',$r);
  527. $p = findPos($d,$line[5]);
  528. $d[$p] = $d[$p].'ю'.$d[$p+1];
  529. unset($d[$p+1]);
  530. $r = implode(' ', $d);
  531. $strokes[] = str_replace(' ',$del,$r);
  532. $strokes[] = implode($del, $d);
  533.  
  534. $r = $res;
  535. $d = explode(' ',$r);
  536. $p = findPos($d,$line[5]);
  537. $d[$p] = $d[$p].'Б'.$d[$p+1];
  538. unset($d[$p+1]);
  539. $r = implode(' ', $d);
  540. $strokes[] = str_replace(' ',$del,$r);
  541. $strokes[] = implode($del, $d);
  542.  
  543. $r = $res;
  544. $d = explode(' ',$r);
  545. $p = findPos($d,$line[5]);
  546. $d[$p] = $d[$p].'Ю'.$d[$p+1];
  547. unset($d[$p+1]);
  548. $r = implode(' ', $d);
  549. $strokes[] = str_replace(' ',$del,$r);
  550. $strokes[] = implode($del, $d);*/
  551. }
  552. }
  553. var_dump('phase3');
  554. $s_res = [];
  555. $k = 0;
  556. $c_strokes = count($strokes);
  557. for($i = 0; $i < $c_strokes; $i++) {
  558. $k++;
  559. $stroke = $strokes[$i];
  560. unset($strokes[$i]);
  561. $stroke = replaceAlpha($stroke);
  562. if(strlen($stroke) > 64) {
  563. $stroke = substr($stroke, 0, 64);
  564. }
  565. $s_res[] = $stroke;
  566. // $s_res[] = appendSpec($stroke);
  567. // $s_res[] = $stroke.'.';
  568. // $s_res[] = $stroke.'!';
  569. // $s_res[] = $stroke.'!!';
  570. // $s_res[] = $stroke.'!!!';
  571. if($k >= 100000) {
  572. $k = 0;
  573. $s_res = array_unique($s_res);
  574. }
  575. $s_res[] = rtrim($stroke);
  576. //$s_res[] = appendSpec(rtrim($stroke));
  577. foreach ($delimeters as $del) {
  578. $s_res[] = rtrim($stroke,$del);
  579. //$s_res[] = appendSpec(rtrim($stroke,$del));
  580. }
  581.  
  582. }
  583. var_dump('phase4');
  584. $k = 0;
  585. $s_res2 = [];
  586. foreach ($s_res as $s) {
  587. $k++;
  588. $s_res2[] = substr($s,0,64);
  589. if($k >= 100000) {
  590. $k = 0;
  591. $s_res2 = array_unique($s_res2);
  592. }
  593. }
  594.  
  595. $s_res2 = array_unique($s_res2);
  596. file_put_contents('script\passwords.lst',implode("\n",$s_res2));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement