usingSystem;namespaceDistributedPasswordCracker.Client.Models{/// <summary>/// username + encrypted password./// In the password file we store username + encrypted password./// The encrypted password is a byte array (cannot be written to the password file)/// This must be Base64 encoded (converted to a string) before written to the file /// </summary>[Serializable]classUserInfo{publicStringUsername{get;set;}publicStringEntryptedPasswordBase64{get;set;}publicbyte[]EntryptedPassword{get;set;}publicUserInfo(Stringusername,StringentryptedPasswordBase64){if(username==null){thrownewArgumentNullException("username");}if(entryptedPasswordBase64==null){thrownewArgumentNullException("entryptedPasswordBase64");}Username=username;EntryptedPasswordBase64=entryptedPasswordBase64;EntryptedPassword=Convert.FromBase64String(entryptedPasswordBase64);}publicoverridestringToString(){returnUsername+":"+EntryptedPasswordBase64;}}}