1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
- using System.Text.RegularExpressions;
-
- namespace UnivateProperties_API.Helpers
- {
- public static class MyCommon
- {
- public static bool IsValidEmail(string item)
- {
- if (!string.IsNullOrEmpty(item))
- {
- Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");
- Match match = regex.Match(item);
- return match.Success;
- }
- else return false;
- }
-
- public static void CreatePasswordHash(string password, out byte[] passwordHash, out byte[] passwordSalt)
- {
- if (password == null) throw new ArgumentNullException("password");
- if (string.IsNullOrWhiteSpace(password)) throw new ArgumentException("Value cannot be empty or whitespace only string.", "password");
-
- using (var hmac = new System.Security.Cryptography.HMACSHA512())
- {
- passwordSalt = hmac.Key;
- passwordHash = hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(password));
- }
- }
-
- public static bool VerifyPasswordHash(string password, byte[] storedHash, byte[] storedSalt)
- {
- if (password == null) throw new ArgumentNullException("password");
- if (string.IsNullOrWhiteSpace(password)) throw new ArgumentException("Value cannot be empty or whitespace only string.", "password");
- if (storedHash.Length != 64) throw new ArgumentException("Invalid length of password hash (64 bytes expected).", "passwordHash");
- if (storedSalt.Length != 128) throw new ArgumentException("Invalid length of password salt (128 bytes expected).", "passwordHash");
-
- using (var hmac = new System.Security.Cryptography.HMACSHA512(storedSalt))
- {
- var computedHash = hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(password));
- for (int i = 0; i < computedHash.Length; i++)
- {
- if (computedHash[i] != storedHash[i]) return false;
- }
- }
-
- return true;
- }
- }
- }
|