52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/php
 | 
						|
<?php
 | 
						|
require __DIR__.'/../../vendor/autoload.php';
 | 
						|
 | 
						|
use nur\A;
 | 
						|
use nur\cli\Application;
 | 
						|
use nur\passwd\EtuPasswordGenerator;
 | 
						|
 | 
						|
Application::run(new class extends Application {
 | 
						|
  const ARGS = [
 | 
						|
    ["-2", "name" => "version", "value" => 2],
 | 
						|
    ["-3", "name" => "version", "value" => 3],
 | 
						|
    ["-4", "name" => "version", "value" => 4],
 | 
						|
  ];
 | 
						|
 | 
						|
  protected $version;
 | 
						|
 | 
						|
  protected $args;
 | 
						|
 | 
						|
  function main() {
 | 
						|
    $version = $this->version;
 | 
						|
    if ($version === null) $version = 4;
 | 
						|
    $pg = new class($version) extends EtuPasswordGenerator {
 | 
						|
      function gen3seed(int $codEtu): int {
 | 
						|
        return parent::gen3seed($codEtu);
 | 
						|
      }
 | 
						|
      function gen4seed(int $codEtu): int {
 | 
						|
        return parent::gen4seed($codEtu);
 | 
						|
      }
 | 
						|
    };
 | 
						|
    $year = intval(date("y"));
 | 
						|
    $prefix = intval(A::get($this->args, 0, $year + 20)) % 100;
 | 
						|
 | 
						|
    $codetu = $prefix * 1000000 + 1;
 | 
						|
    $max = ($prefix + 1) * 1000000;
 | 
						|
    $prev = 0;
 | 
						|
    echo "codetu,seed,delta,password\n";
 | 
						|
    while ($codetu < $max) {
 | 
						|
      switch ($version) {
 | 
						|
      case 3: $seed = $pg->gen3seed($codetu); break;
 | 
						|
      case 4: $seed = $pg->gen4seed($codetu); break;
 | 
						|
      default: $seed = null; break;
 | 
						|
      }
 | 
						|
      $delta = $seed - $prev;
 | 
						|
      $password = $pg->generate($codetu);
 | 
						|
      echo "$codetu,$seed,$delta,\"$password\"\n";
 | 
						|
      $prev = $seed;
 | 
						|
      $codetu++;
 | 
						|
    }
 | 
						|
  }
 | 
						|
});
 |