Benkod

Bencode är ett dataformat . Det är genom att dela - protokollet BitTorrent används för att lagra och utbyta data.

Formatet stöder fyra datatyper .

Bencode används bland annat i .torrentfiler. Den BitTorrent standard anges på det faktum att dessa filer i specifikationen även kallade MetaInfo filer ska bencodete associativa listor.

Eftersom det är en relativt enkel algoritm kan Bencode implementeras och analyseras mycket enkelt . Det är också immun mot några av de problem som binära format ofta stöter på. Till exempel är byteordningen irrelevant.

Kodning

Bencode använder ASCII- bokstäver som avgränsare.

tal

Siffrorna i<zahl>ekodas som. Det är <zahl>ASCII-versionsnumret, bas 10. Negativa nummer skrivs med en minussymbol. Bencode stöder inte fasta eller flytande nummer .

siffra Benkod
−234 i-234e
0 i0e
29410 i29410e

Strängar

Strängar <länge>:<inhalt>matas ut som. Här är <länge>längden, bas 10 och <inhalt>själva teckensträngen. Tomma strängar matas ut med längden noll.

Sträng Benkod
−234 0:
Hej världen 10:Hallo Welt

Listor

Listor l<inhalt>ematas ut som. Det är <inhalt>de fodrade benkodetenelementen i listan, i den ordning de ska visas. En lista kan innehålla en blandning av olika datatyper (t.ex. en blandning av siffror och strängar). En tom lista lematas ut som (dvs. utan innehåll).

innehåll Benkod
[] le
[595] li595ee
[Hallå där] l5:Halloe
[-343, Hej, 555, [], [5]] li-343e5:Halloi555eleli5eee

Ordböcker

Associerande listor, även kallade ordböcker på engelska (och i specifikationen) , visas i denna form, liknar normala listor d<inhalt>e. Innehållet består av kedjade par med två element, en nyckel och ett värde . Parernas ordning måste vara i lexokografisk ordning . En tom ordbok dematas ut som.

innehåll Benkod
{} de
{Name => Thomas, age => 34} d4:Name6:Thomas5:Alteri34ee

Se även

Individuella bevis

  1. Bit Torrent-protokollspecifikationen . BitTorrent.org. Hämtad 8 oktober 2018.
  2. BitTorrent-specifikationen v1.0: kodning . Theory.org. Hämtad 9 oktober 2018.