webForumDet fria alternativet

Olika resultat med SHA1 och encodings

.NET

0 svar · 218 visningar · startad av fredrik

Medlem sedan dec. 19991 072 inlägg
Frågan#1

Hej, jag har testat att använda "SHA1Managed"-klassen och kommit fram till att den returnerar olika resultat beroende på vilken text-encoding man använder. Detta gäller främst vid användandet av svenska tecken. Detta gör att en .NET SHA1 skiljer sig från tex. PHP.s SHA1-metod.

Jag har gjort följande tester med strängen "hej världen".

Här är resultatet av olika encoders.

Använder .NET SHA1Managed-klassen och UTF8-encoding
BE68C1DF883EAF767C7339C0A6ACC04E432D2896

Använder .NET SHA1Managed-klassen och ASCII-encoding
26A73A7DF538D38D9DCF35170484185EBE79B52C

Använder .NET SHA1Managed-klassen och Unicode-encoding
0A5CFEC29562CB6325AC9307FA0A2D689DBCB0F8

Använder .NET SHA1Managed-klassen och "Default"-encoding
19CB538E8F34C13E2745617DAAF86EBD092D5D73

Använder "System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile"
BE68C1DF883EAF767C7339C0A6ACC04E432D2896 (Samam som UTF8)

Använder PHP-metoden "SHA1"
19CB538E8F34C13E2745617DAAF86EBD092D5D73 (Samma som "Default")

"Encoding.Default" använder "Codepage 1252" (Latin1: http://www.microsoft.com/typography/unicode/1252.htm?fname= &fsize=)

Så min fråga är: Vilken kodning ska jag använda?

Vad säger SHA1-standarden om text-encoding, vilken ska egentligen användas?
Enligt PHPs SHA1 så använder dem den implementation som anges i SHA1-RFC.n, vilket i så fall .NETs "HashPasswordForStoringinConfigFile" inte gör då den använder sig av UTF8.

Tack på förhand!

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)