예제 #1
0
        public static string GetSHAHashData(string data, SHAAlgorithmType SHAType)
        {
            byte[] hashData = new byte[] { };
            switch (SHAType)
            {
            case SHAAlgorithmType.SHA1:
            {
                SHA1 sha = SHA1.Create();
                hashData = sha.ComputeHash(Encoding.Default.GetBytes(data));
                break;
            }

            case SHAAlgorithmType.SHA256:
            {
                SHA256 sha = SHA256.Create();
                hashData = sha.ComputeHash(Encoding.Default.GetBytes(data));
                break;
            }

            case SHAAlgorithmType.SHA384:
            {
                SHA384 sha = SHA384.Create();
                hashData = sha.ComputeHash(Encoding.Default.GetBytes(data));
                break;
            }

            case SHAAlgorithmType.SHA512:
            {
                SHA512 sha = SHA512.Create();
                hashData = sha.ComputeHash(Encoding.Default.GetBytes(data));
                break;
            }

            default:
            {
                SHA1 sha = SHA1.Create();
                hashData = sha.ComputeHash(Encoding.Default.GetBytes(data));
                break;
            }
            }
            //create new instance of StringBuilder to save hashed data
            StringBuilder returnValue = new StringBuilder();

            //loop for each byte and add it to StringBuilder
            foreach (byte x in hashData)
            {
                returnValue.Append(string.Format("{0:X2}", x));
            }

            // return hexadecimal string
            return(returnValue.ToString());
        }
예제 #2
0
        public static bool ValidateSHAHashData(string inputData, string storedHashData, SHAAlgorithmType SHAType)
        {
            //hash input text and save it string variable
            string getHashInputData = GetSHAHashData(inputData, SHAType);

            if (string.Compare(getHashInputData, storedHashData) == 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }