internal static byte[] GetMashineHashedData(byte[] salt, byte[] data)
 {
     var alldata = new byte[salt.Length + data.Length];
     Array.Copy(data, alldata, data.Length);
     Array.Copy(salt, 0, alldata, data.Length, salt.Length);
     return Hasher.Hash(alldata, HashAlg.SHA256);
 }
コード例 #2
0
        static PasswordHasher()
        {
            int size;

            if (!int.TryParse(ConfigurationManagerExtension.AppSettings["core.password.size"], out size))
            {
                size = 256;
            }
            PasswordHashSize = size;

            int iterations;

            if (!int.TryParse(ConfigurationManagerExtension.AppSettings["core.password.iterations"], out iterations))
            {
                iterations = 100000;
            }
            PasswordHashIterations = iterations;

            PasswordHashSalt = (ConfigurationManagerExtension.AppSettings["core.password.salt"] ?? "").Trim();
            if (string.IsNullOrEmpty(PasswordHashSalt))
            {
                var salt = Hasher.Hash("{9450BEF7-7D9F-4E4F-A18A-971D8681722D}", HashAlg.SHA256);

                var PasswordHashSaltBytes = KeyDerivation.Pbkdf2(
                    Encoding.UTF8.GetString(MachinePseudoKeys.GetMachineConstant()),
                    salt,
                    KeyDerivationPrf.HMACSHA256,
                    PasswordHashIterations,
                    PasswordHashSize / 8);
                PasswordHashSalt = BitConverter.ToString(PasswordHashSaltBytes).Replace("-", string.Empty).ToLower();
            }
        }
コード例 #3
0
ファイル: PasswordHasher.cs プロジェクト: zltwork/AppServer
        public PasswordHasher(IConfiguration configuration, MachinePseudoKeys machinePseudoKeys)
        {
            if (!int.TryParse(configuration["core:password:size"], out var size))
            {
                size = 256;
            }
            Size = size;

            if (!int.TryParse(configuration["core.password.iterations"], out var iterations))
            {
                iterations = 100000;
            }
            Iterations = iterations;

            Salt = (configuration["core:password:salt"] ?? "").Trim();
            if (string.IsNullOrEmpty(Salt))
            {
                var salt = Hasher.Hash("{9450BEF7-7D9F-4E4F-A18A-971D8681722D}", HashAlg.SHA256);

                var PasswordHashSaltBytes = KeyDerivation.Pbkdf2(
                    Encoding.UTF8.GetString(machinePseudoKeys.GetMachineConstant()),
                    salt,
                    KeyDerivationPrf.HMACSHA256,
                    Iterations,
                    Size / 8);
                Salt = BitConverter.ToString(PasswordHashSaltBytes).Replace("-", string.Empty).ToLower();
            }
        }