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 .
- Hela siffror .
- Strängar med variabel längd.
- Listor.
- Associativa listor .
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
- ↑ Bit Torrent-protokollspecifikationen . BitTorrent.org. Hämtad 8 oktober 2018.
- ↑ BitTorrent-specifikationen v1.0: kodning . Theory.org. Hämtad 9 oktober 2018.