Guest User

Untitled

a guest
Dec 9th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using System.Security.Cryptography;
  4.  
  5. namespace Hashtest
  6. {
  7. class PasswortManager
  8. {
  9. public RNGCryptoServiceProvider RandomGen = new RNGCryptoServiceProvider();
  10. public ASCIIEncoding AsciiEncoder = new ASCIIEncoding();
  11. SHA1 sha1 = SHA1.Create(); // OHNE NEW!!! Warum auch immer...
  12.  
  13. public class PassFactory
  14. {
  15. string Signs;
  16.  
  17. public PassFactory(){
  18. Signs = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÜÖabcdefghijklmnoqrstuvwxyzäüö1234567890";
  19. }
  20. public PassFactory(string numberlist){
  21. Signs = numberlist;
  22. }
  23.  
  24. public string[] getPassList(int length, int count)
  25. {
  26. string[] PassList = new string[count];
  27.  
  28. for (int i = 0; i < count; i++)
  29. {
  30. PassList[i] = getPass(length);
  31. }
  32.  
  33. return PassList;
  34. }
  35.  
  36. public string getPass(int length)
  37. {
  38. StringBuilder Passw = new StringBuilder();
  39. byte[] Bytelist = new byte[length];
  40. RandomGen.GetBytes(Bytelist);
  41.  
  42. foreach(Byte b in Bytelist)
  43. {
  44. Passw.Append(retRandomChar(b,Signs.Length));
  45. }
  46.  
  47. return Passw.ToString();
  48. }
  49.  
  50. public string getPass()
  51. {
  52. return getPass(10);
  53. }
  54.  
  55. public char retRandomChar(byte randomnumber, int length)
  56. {
  57. int randomInt = (int)randomnumber%(length);
  58. return (char)Signs[randomInt];
  59. }
  60. }
  61.  
  62. public class UserEntryData
  63. {
  64. string Username;
  65. string SaltedHash;
  66. Byte[] Salz = new Byte[8];
  67.  
  68. public UserEntryData(string Username)
  69. {
  70. this.Username = Username;
  71. RandomGen.GetBytes(Salz);
  72. }
  73.  
  74. public Byte[] salt //Der salt wird pro passwort nur ein einziges mal vergeben. -> nur auslesen möglich kein ändern...
  75. {
  76. get{return Salz;}
  77. }
  78. }
  79.  
  80. UserEntryData createNewUser(string Username, string Userpasswort)
  81. {
  82. Console.WriteLine("What is the Username?");
  83. UserEntryData NewUser = new UserEntryData();
  84.  
  85. }
  86.  
  87. string GenNewSaltedHash(string Passwort, UserEntryData User) //Create new Passwort
  88. {
  89. byte[] SecretBytes = new byte[Passwort.Length];
  90. SecretBytes = AsciiEncoder.GetBytes(Passwort);
  91.  
  92. byte[] Salt = new byte[8];
  93. RandomGen.GetBytes(Salt);
  94.  
  95.  
  96. }
  97.  
  98. string GenSaltedHash(string Passwort, UserEntryData User)//Hash existing passwort
  99. {
  100.  
  101. }
  102. }
  103.  
  104.  
  105. class MainClass
  106. {
  107. public static void Main (string[] args)
  108. {
  109. RNGCryptoServiceProvider ByteGenerator = new RNGCryptoServiceProvider();
  110. //PassFactory Pass_Factory = new PassFactory();
  111.  
  112. string EinPasswort;
  113. //EinPasswort = Pass_Factory.getPass(32);
  114.  
  115. byte[] Salt = new byte[8];
  116. ByteGenerator.GetBytes(Salt);
  117.  
  118. byte[] Pass = Encoder.GetBytes(EinPasswort);
  119. byte[] ToHash = new byte[Pass.Length + Salt.Length];
  120.  
  121. Array.Copy(Pass, 0, ToHash, 0,Pass.Length);
  122. Array.Copy(Salt, 0, ToHash, Pass.Length,Salt.Length);
  123.  
  124. Byte[] ReadyHash = sha1.ComputeHash(ToHash);
  125. Console.WriteLine();
  126. }
  127. }
  128. }
Add Comment
Please, Sign In to add comment