update
This commit is contained in:
parent
d9f48e9fcc
commit
813150211a
2 changed files with 14 additions and 70 deletions
82
main.rs
82
main.rs
|
@ -1,76 +1,20 @@
|
|||
#![allow(unstable)] // allow unstable libraries
|
||||
// don't rust -> restart
|
||||
|
||||
#[macro_use] extern crate text_io;
|
||||
|
||||
// programm for password generation
|
||||
// rust only uses few things by default ('prelude') -> add your needs!
|
||||
use std::io; // use io library from the standard library
|
||||
|
||||
|
||||
// To-Do:
|
||||
// parameters for password options
|
||||
// Strength of password (number from parameter)
|
||||
// not to complicated character (| l I ö 0)
|
||||
|
||||
|
||||
// crates
|
||||
extern crate rand;
|
||||
extern crate getopts;
|
||||
|
||||
|
||||
use rand::Rng;
|
||||
// use std::__rand::thread_rng;
|
||||
use getopts::Options;
|
||||
use std::string::String;
|
||||
use std::str::FromStr;
|
||||
use std::env; // use command line arguments
|
||||
|
||||
|
||||
// main function
|
||||
fn main() {
|
||||
// get parameters
|
||||
let args: Vec<String> = env::args().collect();
|
||||
// let program = args[0].clone(); // name of program inside parameters
|
||||
|
||||
let mut opts = Options::new(); // create new options objetct
|
||||
opts.optopt("l", "", "set length of password", "LENGTH");
|
||||
opts.optflag("h", "help", "print this help menu");
|
||||
let matches = match opts.parse(&args[1..]) {
|
||||
Ok(m) => { m } // match
|
||||
Err(f) => { panic!(f.to_string()) }
|
||||
};
|
||||
|
||||
|
||||
// variable for length of password
|
||||
let mut pass_length: i32 = 8;
|
||||
let mut password = String::new(); // assign password as empty string
|
||||
let mut rng = rand::thread_rng(); // instance of thread; rng = random number generator (object)
|
||||
|
||||
// variable for strength of password
|
||||
let mut score: i32 = 0; // 0 -> no password/very bad password
|
||||
|
||||
// assign array with (ascii) signs
|
||||
let mut signs : Vec<char> = vec![];
|
||||
|
||||
// fill vector with number of ASCII signs allowed for password
|
||||
for i in 33u8..126u8 {
|
||||
signs.push(i as char);
|
||||
}
|
||||
|
||||
// looping -> creation of password
|
||||
for _ in 0..pass_length {
|
||||
// choose random element from vector signs -> get ASCII signs for number
|
||||
password.push(*(rng.choose(&signs).unwrap())); // * for dereference for processing
|
||||
}
|
||||
|
||||
// length, special character, different characters, non redundance
|
||||
let length = password.len(); // get length of string
|
||||
// println!("length: {}", password.len());
|
||||
|
||||
// we have a password
|
||||
println!("password is: {}", password);
|
||||
fn main() {
|
||||
//let n: i32 = read!();
|
||||
//println!("Read in: {}", n);
|
||||
//fib (n);
|
||||
let n: i32 = 1;
|
||||
fib (n);
|
||||
}
|
||||
|
||||
// Write a function fib which takes a single i32 argument n < 10 and returns n's Fibonacci number (also i32).
|
||||
|
||||
// function
|
||||
fn print_usage(program: &str, opts: Options) {
|
||||
let brief = format!("Usage: {} FILE [options]", program);
|
||||
print!("{}", opts.usage(&brief));
|
||||
fn fib (n:i32) {
|
||||
println!("{} \n", n);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ use rand::Rng;
|
|||
fn main() {
|
||||
|
||||
// variable for length of password
|
||||
let mut pass_length: i32 = 8;
|
||||
let pass_length: i32 = 8;
|
||||
let mut password = String::new(); // assign password as empty string
|
||||
let mut rng = rand::thread_rng(); // instance of thread; rng = random number generator (object)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue