» »

Enolični identifikator datoteke

Enolični identifikator datoteke

GummyBear ::

Zdravo!

Pišem en program, ki vključuje tudi vnos podatkov o datotekah v PB... in tukaj se mi je ustavilo. Zanima me, kako (po čem) bi ločil datoteke med seboj. Da bo bolj razumljivo, rabim nekaj takega kot je ID - ki enolično določa element v podatkovni bazi. Datoteke pa nimajo ID-ja, zato rabim neko alternativo.
Predstavljajte si, da ustvarim neko txt datoteko z imenom "datoteka.txt". Potem datoteko preimenujem in premaknem v drugo mapo. Kako zdaj vedeti, da je ta datoteka ravno ta, ki sem jo jaz ustvaril? Obstaja kak atribut, ki se kljub spremembi datoteke ne spremeni?

kunigunda ::

md5 checksum ?

GummyBear ::

kunigunda je izjavil:

md5 checksum ?


A to misliš md5 vsebine datoteke? Načeloma bi šlo, vendar je malo nerodno, če moram datoteko najprej prebrat, izračunat md5 ter shranit v PB (in obratno).

Mavrik ::

Za to se uporabljajo MD5/SHA checksumi ja, saj drugih identifikatorjev ni (podatki o datotekah so zapisani v datotečnem sistemu - premisli kaj se zgodi ko se datoteka premakne na drugo vrsto datotečnega sistema).

Načeloma se to dela v dveh nivojih:

1.) Preveri se velikost datoteke (datotek z identično velikostjo je precej malo na datotečnem sistemu)
2.) Če velikosti ustrezata se preveri še MD5 checksum.

Tak da v bazo zapiši velikost in MD5 da bo pospešil preverjanje.
The truth is rarely pure and never simple.

kunigunda ::

Lahko se sicer spustis se nizje, namrec ce datoteko premikas ipd. ostane pointer nanjo isti. Verjetno pa rabis tud, ce se kopira
(in stara zbrise), v tem primeru je novi pointer.

Spura ::

Mogoce je date created se ena stvar k se jo splaca preverit preden kaj drazjega preverjas.
edit: je pa res mogoce riskantno ce moras podpirat kopiranje in kake druge operacije

Zgodovina sprememb…

  • spremenil: Spura ()

MrBrdo ::

edina ziher rešitev je md5 oz. nek checksum. vse ostalo se ti lahko potem kaj zalomi (npr. če imaš date created, npr. če v isti sekundi dobiš 2 fajla z istim filenameom).

že md5 ni 100% zarad collisionov, sam dvomim da bi to bil pri tebi problem, ker so vseeno zelo redki.
MrBrdo

GummyBear ::

Najprej vam sporočam, da sem tole z datotekami že rešil.

Sedaj pa je prišla še zahteva, da bi nekako označeval računalnike, na katerih so bile datoteke shranjene. Torej spet rabim nek enoličen identifikator, s katerim bi označil računalnik in bi bila zelo majhna (ali sploh nemogoče) verjetnost, da se tak identifikator ponovi.

Ime računalnika bi bilo recimo primerno, ampak lahko se zgodi, da obstajata dva računalnika z istim imenom - na primer če bi OS instaliral iz istega image. Enako velja z uporabniki. Kako bi lahko sestavil unikaten opis?

black ice ::

Preberi si tole

Ericssony ::

+1. Isti način kot ga je omenil black_ice sem uporabil že pred leti in deluje odlično. Edino pazi katere komponente boš izbral, ker poizvedba za podatki lahko malce traja...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] Kako izračunati hash diska.

Oddelek: Programiranje
335087 (3917) kunigunda
»

USB3 se čudno obnaša

Oddelek: Pomoč in nasveti
14992 (618) Brane22
»

c# kako ugotoviti da gre za identicni file - ce je bil movean na isti particiji

Oddelek: Programiranje
121242 (1004) BigWhale
»

Problem z instalacijo SuSE linux 9.3 64 bit

Oddelek: Operacijski sistemi
171115 (997) sverde21
»

Skrivanje gesel

Oddelek: Izdelava spletišč
393149 (2389) Tr0n

Več podobnih tem