Base32
Base32 adalah salah satu dari beberapa penyandian transfer base 32. Base32 mengeset 32-karakter yang terdiri dari huruf A sampai Z dan angka 2 hingga 7 Base32 tidak hanya digunakan untuk menyandikan data biner, tetapi Base32 juga dapat menyandikan teks biner seperti ASCII Perangkat LunakBase32 adalah notasi untuk penyadian data byte sewenang - wenang menggunakan seperangkat simbol terbatas yang dapat digunakan oleh manusia dan diproses oleh komputer. Base32 terdiri dari simbol 32 karakter yang berbeda, serta algoritme untuk penyandian urutan sewenang - wenang dari byte 8-bit ke dalam abjad Base32. Karena lebih dari satu simbol Base32 5-bit diperlukan untuk mewakili setiap byte input 8-bit, simbol Base32 juga menentukan persyaratan panjang string Base32 yang diizinkan (yang harus merupakan kelipatan 40 bit). Sistem Base64 yang terkait erat, sebaliknya, menggunakan satu set 64 simbol. Implementasi Base32 tersedia di C/C++,[1] Perl,[2] Java,[3] JavaScript[4] Python,[5] Go[6] dan Ruby.[7] KelebihanBase32 memiliki sejumlah kelebihan daripada Base64:
Base32 juga punya kelebihan dibanding hexadecimal/Base16:
KekuranganRepresentasi Base32 membutuhkan sekitar 20% lebih banyak ruang daripada Base64. Juga, karena menyandikan 5 byte ke 8 karakter (daripada 3 byte ke 4 karakter), padding ke batas 8 karakter adalah beban yang lebih besar pada pesan pendek.
RFC 4648 Base32 alphabetHuruf Base32 yang paling banyak digunakan didefinisikan dalam . Itu menggunakan huruf A–Z, diikuti dengan 2–7. 0 dan 1 dilewati karena kesamaannya dengan huruf O dan I (dengan demikian "2" sebenarnya memiliki nilai desimal 26). Dalam beberapa keadaan, padding tidak diperlukan atau digunakan (padding dapat disimpulkan dari panjang modulo string 8). RFC 4648 menyatakan bahwa padding harus digunakan kecuali spesifikasi standar yang mengacu pada RFC secara eksplisit menyatakan sebaliknya. Mengecualikan padding berguna saat menggunakan data yang disandikan base32 di token URL atau nama file di mana karakter padding bisa menimbulkan masalah.
Versi alternatifMengubah huruf Base32, semua standar alternatif memiliki kombinasi simbol alfanumerik yang serupa. zasep.paoty-base-32z-base-32[8] adalah pengkodean Base32 yang dirancang agar lebih mudah digunakan manusia dan lebih ringkas. Ini termasuk 1, 8 dan 9 tetapi tidak termasuk l, v dan 2. Ini juga memungkinkan huruf sehingga karakter yang lebih mudah adalah yang lebih sering muncul. Ini kompak mengkodekan bitstrings yang panjangnya dalam bit bukan kelipatan 8, dan menghilangkan karakter padding trailing.z-base-32 digunakan dalam proyek open source Mnet, dan saat ini digunakan dalam protokol Phil Zimmermann ZRTP, dan dalam proyek open source Tahoe-LAFS.
Crockford Base32Desain alternatif lain untuk Base32 dibuat oleh Douglas Crockford, yang mengusulkan penggunaan karakter tambahan untuk checksum.[9]
ElectrologicaBentuk notasi base 32 sebelumnya digunakan oleh programmer yang bekerja pada Electrologica X1 untuk mewakili alamat mesin. "Angka" diwakili sebagai angka desimal dari 0 hingga 31. Misalnya, 12-16 akan mewakili alamat mesin 400 (= 12 * 32 + 16). base32hexTriacontakaidecimal adalah desain alternatif lain untuk Base 32, yang memperluas hexadecimal dengan cara yang lebih alami dan pertama kali diusulkan oleh Christian Lanctot, seorang programmer yang bekerja pada Sage software, dalam sebuah surat ke majalah Dr. Dobb pada Maret 1999[10] sebagai solusi yang diusulkan untuk memecahkan bug Y2K dan disebut sebagai "Double Hex". Versi ini dijelaskan dalam RFC 2938 dengan nama "Base-32". RFC 4648, sementara mengakui penggunaan yang ada dari versi ini di NSEC3, menyebutnya sebagaibase32hex dan mencegah pelabelan itu sebagai "base32". Demikian pula untuk heksadesimal, digit yang digunakan adalah 0-9 diikuti oleh huruf alfabet berturut-turut. Ini cocok dengan digit yang digunakan oleh fungsi JavaScript Tidak seperti banyak sistem notasi basis 32 lainnya, triacontakaidecimal berdekatan dan termasuk karakter yang dapat secara visual konflik. Dengan font yang tepat adalah mungkin untuk membedakan secara visual antara 0, O dan 1, I. Font lain tidak cocok karena konteks yang biasanya disediakan oleh bahasa Inggris tidak disediakan oleh sistem notasi yang mengekspresikan angka.Namun, pilihan font tidak dikontrol oleh notasi atau pengkodean, oleh karena itu berisiko menganggap font yang dapat dibedakan akan digunakan.
GeohashLihat Geohash algoritme, yang digunakan untuk merepresentasikan nilai garis lintang dan garis bujur dalam satu bilangan bulat positif (bit-interlaced). Representasi base32 dari Geohash menggunakan semua angka desimal (0-9) dan alfabet huruf kecil, kecuali huruf "a", "i", "l", "o", seperti yang ditunjukkan oleh peta karakter berikut:
Video gameSebelum NVRAM menjadi universal, beberapa video game untuk platform Nintendo menggunakan basis 32 angka untuk passwords. Sistem ini menghilangkan vokal untuk mencegah game secara tidak sengaja memberikan kata sandi profane. Dengan demikian, karakter umumnya beberapa variasi kecil dari himpunan berikut: 0–9, B, C, D, F, G, H, J, K, L, M, N, P, Q, R, S, T, V, W, X, Y, Z, dan beberapa tanda baca. Game yang diketahui menggunakan sistem seperti itu termasuk Mario Is Missing!, Mario's Time Machine, Tetris Blast, dan The Lord of the Rings (Super NES). Lihat juga
Referensi
|