I'm writing a password salt/hash procedure for my .NET application, largely following the guide of this article:
<http://www.aspheute.com/english/20040105.asp>

Basically the code for computing the salted hash is this:

```
public string ComputeSaltedHash(string password, byte[] salt) {

    // Get password ASCII text as bytes:
    byte[] passwordBytes = System.Text.Encoding.ASCII.GetBytes(password);

    // Append the two arrays
    byte[] toHash = new byte[passwordBytes.Length + salt.Length];
    Array.Copy(passwordBytes, 0, toHash, 0, passwordBytes.Length);
    Array.Copy(salt, 0, toHash, passwordBytes.Length, salt.Length);

    byte[] computedHash = SHA1.Create().ComputeHash(toHash);

    // Return as an ASCII string
    return System.Text.Encoding.ASCII.GetString(computedHash);
}

```

However, I want to allow allow users to use Unicode chars in their password, if they like. (This seems like a good idea; can anyone think of a reason it's not?)

However, I don't know a ton about how Unicode works, and I'm worried if I just change both references of `System.Text.Encoding.ASCII` to `System.Text.Encoding.Unicode`, the hash algorithm might produce some byte combinations that don't form valid Unicode chars and the GetString call will freak out.

Is this a valid concern, or will it be OK?