Calcular el hash MD5 de una cadena UTF8

Tengo una tabla SQL en la que almaceno valores de cadena grandes que deben ser únicos. Para garantizar la unicidad, tengo un índice único en una columna en la que almaceno una representación de cadena del hash MD5 de la cadena grande.

La aplicación C # que guarda estos registros utiliza el siguiente método para realizar el hash:

public static string CreateMd5HashString(byte[] input)
{
    var hashBytes = MD5.Create().ComputeHash(input);
    return string.Join("", hashBytes.Select(b => b.ToString("X")));
}

Para llamar a esto, primero convierto elstring abyte[] utilizando la codificación UTF-8:

// this is what I use in my app
CreateMd5HashString(Encoding.UTF8.GetBytes("abc"))
// result: 90150983CD24FB0D6963F7D28E17F72

Ahora me gustaría poder implementar esta función de hashing en SQL, usando elHASHBYTES función, pero obtengo un valor diferente:

print hashbytes('md5', N'abc')
-- result: 0xCE1473CF80C6B3FDA8E3DFC006ADC315

Esto se debe a que SQL calcula el MD5 de la representación UTF-16 de la cadena. Obtengo el mismo resultado en C # si lo hagoCreateMd5HashString(Encoding.Unicode.GetBytes("abc")).

No puedo cambiar la forma en que se realiza el hash en la aplicación.

¿Hay alguna manera de hacer que SQL Server calcule el hash MD5 de los bytes UTF-8 de la cadena?

Busqué preguntas similares, intenté usar intercalaciones, pero hasta ahora no tuve suerte.