Yo hice esto, pero como no se cual es la logica, de las licencias
Código PHP:
<?php
echo "<hr>";
$caracteres="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$pass = '';
for($i=0; $i<25; $i++){
$n=strlen($caracteres)-$i;
$x = rand(0,$n);
$r=strlen($pass);
if( $r == 5 OR $r == 11 OR $r == 17 OR $r == 23 ){
$pass.= "-".$caracteres[$x];
}else{
$pass.= $caracteres[$x];
}
}
print 'Clave: ' . $pass;
echo "<hr>";
?>