예제 #1
0
        private static void GenerateCommand(string[] args)
        {
            var s    = 1;
            var type = PfpConvert.GENERATED_PFP_TYPE;

            if (args[1].Equals("pfp"))
            {
                type = PfpConvert.GENERATED_PFP_TYPE;
            }
            else if (args[1].Equals("aep"))
            {
                type = PfpConvert.GENERATED_AEP_TYPE;
            }
            else
            {
                s--;
            }

            var pw    = new PfpConvert().GetPasswordGetter(args[0]);
            var entry = new GeneratedEntry {
                type = type, site = args[1 + s], name = args[2 + s]
            };

            if (3 + s < args.Length)
            {
                entry.revision = args[3 + s];
            }

            Console.WriteLine(pw(entry));
        }
        public string Get(GeneratedEntry entry)
        {
            var salt = entry.site + "\0" + entry.name;

            if (!string.IsNullOrEmpty(entry.revision))
            {
                salt += "\0" + entry.revision;
            }

            var hash   = Hash(salt, entry.length);
            var result = Stringify(hash, entry.lower, entry.upper, entry.number, entry.symbol);

            return(result);
        }