2010-04-06 6 views
3

Le comportement de l'algorithme SHA-1 est-il défini pour les chaînes Unicode? Je me rends compte que SHA-1 lui-même ne se soucie pas du contenu de la chaîne, cependant, il me semble que pour passer des tests standard pour SHA-1, la chaîne d'entrée doit être encodée avec UTF-8.SHA-1 et Unicode

Répondre

4

SHA-1 est basé sur des octets; il ne se soucie pas de la structure des données. Si vous lui donnez un tas d'octets constitués de chaînes Unicode, vous obtiendrez un résultat. Gardez à l'esprit que la taille du bloc est de 512 bits, donc de plus petites quantités de données peuvent causer des problèmes de sécurité.

+0

Je le comprends aussi. Mais que se passe-t-il si j'essaie de passer un test avec "abc" et que je lui donne une chaîne "abc" encodée en UTF-16? Cela ne passera jamais. C'est la raison pour laquelle la question existe. – Andrew

+0

Bien sûr, cela ne fonctionne pas. SHA-1 compare les données indépendamment de la structure. Vous devez comparer les pommes aux pommes. – WhirlWind

+0

donc quand vous parlez de la chaîne Unicode que vous voulez mettre dans l'algorithme SHA-1, que définiriez-vous comme des pommes? :) – Andrew