예제 #1
0
        private static byte[] GenerateKey(string password)
        {
            const ulong n = 16384;
            const uint  r = 16, p = 1;

            var salt = SCrypt.GenerateSalt(saltLengthBytes: 16u, n, r, p, hashLengthBytes: 128u);

            SCrypt.ParseSalt(salt, out var saltBytes, out _, out _, out _, out var hashLengthBytes);
            var passwordBytes = Encoding.Unicode.GetBytes(password);
            var key           = SCrypt.DeriveKey(passwordBytes, saltBytes, n, r, p, 64u);

            return(key);
        }