Comment puis-je calculer l'équivalent de SQL Server (hashbytes('SHA1',[Nomrubrique])) en C#?

Dans ma base de données j'ai une colonne calculée qui contient un hash SHA1 de la colonne appelée URLString qui est titulaire d'Url (par exemple, "http://xxxx.com/index.html").

J'ai souvent besoin d'interroger la table pour trouver une URL spécifique basé sur le URLString colonne.
La table contient des 100K et ces requêtes prendre plusieurs secondes (à l'aide de SQL Azure).
Depuis l'Url peut être assez long, je ne peux pas créer un index sur cette colonne (au-dessus de 450 octets).

Pour accélérer les choses, je veux calculer l'équivalent de SQL Server hashbytes('SHA1',[URLString]) à partir de C# et de la requête sur la base de cette valeur.

J'ai essayé le code ci-dessous, mais la valeur que je reçois est différent de celui calculé par la base de données.

var urlString = Encoding.ASCII.GetBytes(url.URLString); //UTF8 also fails
var sha1 = new SHA1CryptoServiceProvider();
byte[] hash = sha1.ComputeHash(urlString);

Ai-je raté quelque chose de trivial ici?
Je suis ouvert à d'autres idées qui peuvent résoudre le même problème (tant qu'ils sont pris en charge par SQL Azure).

Exemple: dans la base de données automatiquement calculé la valeur SHA1 de l'URL http://www.whatismyip.org/ est 0xAE66CA69A157186A511ED462153D7Ca65f0c1bf7.

Pouvez-vous mettre l'Insert qui calcule le hachage?
Si le résultat ne correspond pas du côté serveur, le calcul essayez d'utiliser l'un des nombreux en ligne de hachage des calculatrices à vérifier le résultat est correct. Si l'on est incorrect, il peut être causée par le sel utilisé
C'est une auto-colonne calculée, lorsque j'insère une nouvelle URL de la valeur est calculée et inséré par la base de données.
Si il est une valeur salt, est-il la même valeur pour tous les Serveurs SQL? Peut-il être obtenu à partir de quelque part?
Il doit y avoir un morceau de script SQL quelque part qui calcule. Sauf si vous trouvez qu'il n'y a aucun moyen de deviner ce qu'il se passe

OriginalL'auteur Gilad Gat | 2013-01-03