示例#1
0
        public HashValidator()
        {
            EncodingStream es = new EncodingStream(File.ReadAllBytes(Settings.Files.HashPath));

            this.Salt = es.ReadNextBytes();
            this.Hash = es.ReadNextBytes();
            es.Close();
        }
示例#2
0
        /// <summary>
        /// Return the encoded login data
        /// </summary>
        public static byte[] EncodeCryptoRNGData(CryptoRNGData Data)
        {
            EncodingStream ec = new EncodingStream();

            ec.WriteEntry(Data.Salt);
            ec.WriteEntry(Data.IV);
            ec.Close();
            return(ec.GetData());
        }
示例#3
0
        public static void SaveHash(string Password)
        {
            byte[]         Key  = Encoding.UTF8.GetBytes(Password);
            byte[]         Salt = CryptoFunctions.GenerateCryptoSecureBytes(Settings.Hash.SaltBytes);
            byte[]         Hash = CryptoFunctions.DeriveKey(Key, Salt, Settings.Hash.HashBytes, Settings.Hash.HashPBKDF2Iterations);
            EncodingStream es   = new EncodingStream(File.Open(Settings.Files.HashPath, FileMode.CreateNew));

            es.WriteBytes(Salt);
            es.WriteBytes(Hash);
            es.Close();
        }
示例#4
0
 public void Close() => OutputStream.Close();