public override void Evaluate(IInterpretingContext context, Evaluator mainEvaluator, BaseExpression expression) { var exp = expression as GenExpression; var alphabet = exp.Alphabets.Select(x => context.Alphabet.GetAlphabet(x)).Aggregate((current, next) => current + next); var rand = new Random(); var res = ""; for (var i = 0; i < exp.Length; i++) { res += alphabet[rand.Next(0, alphabet.Length)]; } PushToContext(res, context); }
private void PushToContext(string password, IInterpretingContext context) { int i = 0; while (i < Int32.MaxValue) { if (context.GetObject("Generated-" + i) != null) { i++; } else { context.SetObject("Generated-" + i, password); break; } } }
public T Generate() { context = new Evaluator(resolver.Resolve(), context).Evaluate(); return(OnEvaluated()); }
public FromCommandPasswordGenerator(string cmd, IInterpretingContext context, IAlphabet alphabet) { resolver = new StringCommandResolver(cmd); context = new InterpretingContext(alphabet); }
public Evaluator(List <BaseExpression> expressions, IInterpretingContext context) { this.expressions = expressions; this.context = context; }
public abstract void Evaluate(IInterpretingContext context, Evaluator mainEvaluator, BaseExpression expression);