Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- using System.Security.Cryptography;
- namespace Hashtest
- {
- class PasswortManager
- {
- public RNGCryptoServiceProvider RandomGen = new RNGCryptoServiceProvider();
- public ASCIIEncoding AsciiEncoder = new ASCIIEncoding();
- SHA1 sha1 = SHA1.Create(); // OHNE NEW!!! Warum auch immer...
- public class PassFactory
- {
- string Signs;
- public PassFactory(){
- Signs = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÜÖabcdefghijklmnoqrstuvwxyzäüö1234567890";
- }
- public PassFactory(string numberlist){
- Signs = numberlist;
- }
- public string[] getPassList(int length, int count)
- {
- string[] PassList = new string[count];
- for (int i = 0; i < count; i++)
- {
- PassList[i] = getPass(length);
- }
- return PassList;
- }
- public string getPass(int length)
- {
- StringBuilder Passw = new StringBuilder();
- byte[] Bytelist = new byte[length];
- RandomGen.GetBytes(Bytelist);
- foreach(Byte b in Bytelist)
- {
- Passw.Append(retRandomChar(b,Signs.Length));
- }
- return Passw.ToString();
- }
- public string getPass()
- {
- return getPass(10);
- }
- public char retRandomChar(byte randomnumber, int length)
- {
- int randomInt = (int)randomnumber%(length);
- return (char)Signs[randomInt];
- }
- }
- public class UserEntryData
- {
- string Username;
- string SaltedHash;
- Byte[] Salz = new Byte[8];
- public UserEntryData(string Username)
- {
- this.Username = Username;
- RandomGen.GetBytes(Salz);
- }
- public Byte[] salt //Der salt wird pro passwort nur ein einziges mal vergeben. -> nur auslesen möglich kein ändern...
- {
- get{return Salz;}
- }
- }
- UserEntryData createNewUser(string Username, string Userpasswort)
- {
- Console.WriteLine("What is the Username?");
- UserEntryData NewUser = new UserEntryData();
- }
- string GenNewSaltedHash(string Passwort, UserEntryData User) //Create new Passwort
- {
- byte[] SecretBytes = new byte[Passwort.Length];
- SecretBytes = AsciiEncoder.GetBytes(Passwort);
- byte[] Salt = new byte[8];
- RandomGen.GetBytes(Salt);
- }
- string GenSaltedHash(string Passwort, UserEntryData User)//Hash existing passwort
- {
- }
- }
- class MainClass
- {
- public static void Main (string[] args)
- {
- RNGCryptoServiceProvider ByteGenerator = new RNGCryptoServiceProvider();
- //PassFactory Pass_Factory = new PassFactory();
- string EinPasswort;
- //EinPasswort = Pass_Factory.getPass(32);
- byte[] Salt = new byte[8];
- ByteGenerator.GetBytes(Salt);
- byte[] Pass = Encoder.GetBytes(EinPasswort);
- byte[] ToHash = new byte[Pass.Length + Salt.Length];
- Array.Copy(Pass, 0, ToHash, 0,Pass.Length);
- Array.Copy(Salt, 0, ToHash, Pass.Length,Salt.Length);
- Byte[] ReadyHash = sha1.ComputeHash(ToHash);
- Console.WriteLine();
- }
- }
- }
Add Comment
Please, Sign In to add comment