Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

ed2k hash hesaplayıcı C#.Net


nakerebanarimasen

Öne çıkan mesajlar

Arkadaşlar merhaba,

anidb.net sitesi ile UDP üzerinden haberleşen küçük bir program yazıyorum, elimdeki bilmem kaç TB anime'yi düzenlemek için =P sitenin sunduğu WebAOM programı her ne kadar istediklerimi yapsa da pek memnun kalamadım. Hem vakit geçirmek hem de bişiler öğrenmek amacıyla benzer bir program yazıyorum. Şu ana kadar server ile haberleşme komut alım-gönderimi, gelen komut kodlarına göre yapılacak eventler vb birçok şeyi hallettim. Listeye dosya eklemek için ise ed2k hash i hesaplamam lazım. ed2k hash hesaplamamda yardımcı olursanız sevinirim.

Çok uzun, okumam(çu;o)

ed2k nasıl hesaplarım
Link to comment
Sosyal ağlarda paylaş

Ozel bi hash falan yoktur muhtemelen. md5 summary'yi alip kullaniyordur.

5 degil 4'mus.

said:
Each file that is shared using eMule is hashed as a hash list comprising separate 9500 kilobyte chunks using the MD4 algorithm. The top-level MD4 hash, file size, filename, and several secondary search attributes such as bit rate and codec are stored on eD2k servers and the serverless Kad network.


http://en.wikipedia.org/wiki/EMule
Link to comment
Sosyal ağlarda paylaş

md4 ten biraz daha farklı fakat md4 kullanan bir algoritması var

{
if filesize is less than or equal to 9728000:
return md4 of file

for chunk of size upto 9728000 in file:
append md4 of chunk to hashlist

if filesize is a multiple of 9728000:
append md4 of null to hashlist
}

internette bulduğum pseudo code bu =)
birde c dilinde birkaç header dosyası buldum bunları .net e uyumlu hale getirebilirsem kullanabiliri de asıl kllaabilceği akkıda fikri olan
Link to comment
Sosyal ağlarda paylaş

di said:

Direkt oraya yazdigin pseudo code'u neden uygulamiyorsun ? Epey basit gorunuyor.


Çünkü anlamadım XD... Data stream'i nasıl o kadar boyutlara ayıracam? null u ya da chunk i hashlist e nasıl append edicem bilmiyorum XD? program yazma işini hobby olarak falan yaptığımdan terimleri bilemedim hani hashlist falan nedir biliyorum fakat...
Link to comment
Sosyal ağlarda paylaş

di said:

Hash List formati nasildir bilmiyorum da digeri icin gerekirse byte byte sayican stream'i =) Lakin gerek oldugunu sanmam cunku hemen her dilde file pointer'in konumunu ve bir kerede okuyacagin data'yi belirtebiliyorsun.


teşekkür ederim vakit ayırıp cevap yazıyorsun da böyle çok havada kalıyor XD hani üşenmez isen azıcık daha detaylı anlatabilri misn?
Link to comment
Sosyal ağlarda paylaş

Direkt bu sekilde anlatiyorum cunku .NET ile nasil yaparsin pek bir fikrim yok.

Ben PHP ile yapacak olsam;

$file_handler = fopen('DOSYA_YOLU','r'); // okumak icin ac.


if($file_handler){ // file handler olusmussa, hata yoksa
while(!feof($file_handler)){ // dosya sonune gelinmedigi surece
$chunk = fgets($file_handler,10240000); // 10 milyon byte oku
create_hash_from_chunk($chunk); // hash'i yaratip canin ne istiyorsa yap
}
}


seklinde yapardim kabaca.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...