So I need to generate a UUID with a string as the input to a hash function.
As I understand it MS’s implementation of GUID is not endian portable and therefore does not implement RFC 4122 correctly. So I am wondering if I am falling in basically the same pitfall by passing the .NET System.Security.Cryptography.SHA1Managed().ComputeHash(data) function a UTF-8 string.
I believe I am fine as wikipedia seems to indicate that byte order doesn’t matter for UTF-8 and the Byte Order Mark is essentially demoted to being a header to denote that the string is in UTF-8.
Edit: Note I am trying to use a UTF-8 string as a seed for the hash used in the UUID.
UTF8 does not have multiple byte orders.
Instead, the UTF8 specification precisely defines the byte order used to encode non-ASCII characters.
However, you cannot parse an arbitrary hash as UTF8.