← Tutti gli articoli

ASP.NET MEMBERSHIP CRYPTOGRAPHY PASSWORDSALT SHA1

26 November 2010  ·  N/A · Article  ·  1 visite

ASP.NET MEMBERSHIP CRYPTOGRAPHY PASSWORDSALT SHA1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string password="prova";

           // HashAlgorithm ha = HashAlgorithm.Create("SHA1");//Membership.HashAlgorithmType);
            string dbEncodedPassword = "pVIoR4xjUsgiIUsYvj3vj2xEJXU=";
            string oldEncodedSalt = "Zo657DZKBmXMyekzee9yGw==";
            string NewEncodedPassword = EncodePassword("prova", dbEncodedPassword);
            string r = "";

            //byte[] oldSalt = Convert.FromBase64String(oldEncodedSalt);
            //byte[] bytePassword = Encoding.Unicode.GetBytes(password);
            //byte[] inputBuffer = new byte[bytePassword.Length + 16];

            //Buffer.BlockCopy(bytePassword, 0, inputBuffer, 0, bytePassword.Length);
            //Buffer.BlockCopy(oldSalt, 0, inputBuffer, bytePassword.Length, 16);

            //byte[] bhashedPassword = ha.ComputeHash(inputBuffer);
            //string hashedPassword = Convert.ToBase64String(bhashedPassword);
            //if (hashedPassword == oldEncodedPassword)
            //    password = "";
            ////////HashAlgorithm passwordHasher = HashAlgorithm.Create("SHA1");

            ////////byte[] saltBytes = Convert.FromBase64String(oldEncodedSalt);
            ////////byte[] passwordBytes = Encoding.UTF8.GetBytes(oldEncodedPassword);
            ////////byte[] bytesToHash = new byte[saltBytes.Length + passwordBytes.Length];
            ////////saltBytes.CopyTo(bytesToHash, 0);
            ////////passwordBytes.CopyTo(bytesToHash, saltBytes.Length);
            ////////byte[] hash = passwordHasher.ComputeHash(bytesToHash);
            ////////string base64Hash = Convert.ToBase64String(hash);
            //return user.Membership.Password == base64Hash :


        }

        public string EncodePassword2(string pass, string saltBase64)
        {
            byte[] bytes = Encoding.Unicode.GetBytes(pass);
            byte[] src = Convert.FromBase64String(saltBase64);
            byte[] dst = new byte[src.Length + bytes.Length];
            Buffer.BlockCopy(src, 0, dst, 0, src.Length);
            Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
            HashAlgorithm algorithm = HashAlgorithm.Create("SHA1");
            byte[] inArray = algorithm.ComputeHash(dst);
            return Convert.ToBase64String(inArray);
        }

        private static string GetSalt()
        {
            byte[] buf = new byte[16];
            (new RNGCryptoServiceProvider()).GetBytes(buf);
            return Convert.ToBase64String(buf);
        }

        private static string EncodePassword(string pass, string salt)
        {
            byte[] bIn = Encoding.Unicode.GetBytes(pass);
            byte[] bSalt = Convert.FromBase64String(salt);
            byte[] bAll = new byte[bSalt.Length + bIn.Length];
            byte[] bRet;

            Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
            Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
            HashAlgorithm s = HashAlgorithm.Create("SHA1");
            bRet = s.ComputeHash(bAll);

            return Convert.ToBase64String(bRet);
        }
     


    }
}

Si è verificato un errore imprevisto. Ricarica

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.