diff options
author | marcinzelent <zelent.marcin@gmail.com> | 2018-03-17 15:30:15 +0100 |
---|---|---|
committer | marcinzelent <zelent.marcin@gmail.com> | 2018-03-17 15:30:15 +0100 |
commit | 7e2a8dbd051b94115672cf22cc66ef09ba8376ca (patch) | |
tree | f73c0600f07e7cbd9d743eccdd6d680880002229 /PasswordCrackerDistributed/PasswordCrackerServer/PasswordFileHandler.cs | |
parent | 8266a5b9430ef4f6ab0d0f0572da4e6f451d0cdd (diff) |
.NET Core is cool!
Diffstat (limited to 'PasswordCrackerDistributed/PasswordCrackerServer/PasswordFileHandler.cs')
-rw-r--r-- | PasswordCrackerDistributed/PasswordCrackerServer/PasswordFileHandler.cs | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/PasswordCrackerDistributed/PasswordCrackerServer/PasswordFileHandler.cs b/PasswordCrackerDistributed/PasswordCrackerServer/PasswordFileHandler.cs deleted file mode 100644 index 8c0780c..0000000 --- a/PasswordCrackerDistributed/PasswordCrackerServer/PasswordFileHandler.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Security.Cryptography;
-
-namespace PasswordCrackerServer
-{
- class PasswordFileHandler
- {
- private static readonly Converter<char, byte> Converter = CharToByte;
-
- /// <summary>
- /// With this method you can make you own password file
- /// </summary>
- /// <param name="filename">Name of password file</param>
- /// <param name="usernames">List of usernames</param>
- /// <param name="passwords">List of passwords in clear text</param>
- /// <exception cref="ArgumentException">if usernames and passwords have different lengths</exception>
- public static void WritePasswordFile(String filename, String[] usernames, String[] passwords)
- {
- HashAlgorithm messageDigest = new SHA1CryptoServiceProvider();
- if (usernames.Length != passwords.Length)
- {
- throw new ArgumentException("usernames and passwords must be same lengths");
- }
- using (FileStream fs = new FileStream(filename, FileMode.CreateNew, FileAccess.Write))
- using (StreamWriter sw = new StreamWriter(fs))
- {
- for (int i = 0; i < usernames.Length; i++)
- {
- byte[] passwordAsBytes = Array.ConvertAll(passwords[i].ToCharArray(), GetConverter());
- byte[] encryptedPassword = messageDigest.ComputeHash(passwordAsBytes);
- String line = usernames[i] + ":" + Convert.ToBase64String(encryptedPassword) + "\n";
- sw.WriteLine(line);
- }
- }
- }
-
- /// <summary>
- /// Reads all the username + encrypted password from the password file
- /// </summary>
- /// <param name="filename">the name of the password file</param>
- /// <returns>A list of (username, encrypted password) pairs</returns>
- public static List<UserInfo> ReadPasswordFile(String filename)
- {
- List<UserInfo> result = new List<UserInfo>();
-
- FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
- using (StreamReader sr = new StreamReader(fs))
- {
-
- while (!sr.EndOfStream)
- {
- String line = sr.ReadLine();
- String[] parts = line.Split(":".ToCharArray());
- UserInfo userInfo = new UserInfo(parts[0], parts[1]);
- result.Add(userInfo);
- }
- return result;
- }
- }
-
- public static Converter<char, byte> GetConverter()
- {
- return Converter;
- }
-
- /// <summary>
- /// Converting a char to a byte can be done in many ways.
- /// This is one way ...
- /// </summary>
- /// <param name="ch"></param>
- /// <returns></returns>
- private static byte CharToByte(char ch)
- {
- return Convert.ToByte(ch);
- }
- }
-}
\ No newline at end of file |