Avatar billede CodingJoe Nybegynder
23. marts 2013 - 14:51 Der er 5 kommentarer og
1 løsning

Finde checksum værdi af en fil inden den bliver persisteret

Hejsa

Jeg forsøger at finde Sha256 værdi af en bytesInStream, der indeholder en fil.

string checksum = Sha256(bytesInStream);
fileStream.Write(bytesInStream, 0, bytesInStream.Length);

Når jeg så læser den fysiske fils checksum værdi vha.
fciv.exe c:\MinMappe\minfil.pdf

Så er den ikke den samme.

Kan det lade sig gøre at finde en checksum værdi af en fil, inden den bliver persisteret. Det vil hjælpe en del, da jeg ikke bagefter behøver at indlæse filen igen, for at finde Sha256 værdien af filen.

Jeg går udfra checksumværdi og Sha256 er det samme
Avatar billede Syska Mester
23. marts 2013 - 15:00 #1
Nej,

Du kan også lave en med andre algoritmer så det er den samme du skal bruge ...

Hvor kommer din anden fra?
Avatar billede CodingJoe Nybegynder
23. marts 2013 - 15:08 #2
Jeg forsøger blot at finde en unik checksum værdi på et byte[], som jeg bagefter filestreamer.

Efter det fysisk er persisteret på et fildrev, skal jeg bare sikre mig at den matcher den samme checksum værdi som jeg har fået fra byte[].
Avatar billede arne_v Ekspert
23. marts 2013 - 15:27 #3
h1 = hash af byte[]
skriv byte[] til disk
laes byte[] fra disk
h2 = hash af byte[]

skal give h1==h2

det er hele pointen i hash funktioner
Avatar billede arne_v Ekspert
23. marts 2013 - 15:30 #4
Mulige aarsager til at det fejler:

* bruge af forskellige hash algoritme, SHA-1 og SHA-256 giver ikke samme vaerdi

* ikke skrive/laese alle bytes ved disk operationer

* noget knas ved string<->byte[] konvertering
Avatar billede CodingJoe Nybegynder
04. april 2013 - 00:32 #5
Smid et svar ind :)
Avatar billede arne_v Ekspert
04. april 2013 - 00:41 #6
moi?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester