HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Base64 kódolás és dekódolás


Példaprogram letöltése

4456 bájt

A Base64 kódolási mechanizmus tetszőleges bájtsorozatok kódolására használható. Ez a kódolás majdnem megegyezik a titkosítással kiegészített levelezési protokollt (PEM) használó alkalmazások által használt kódolással. A Delphi 6-ban megjelent függvényekkel és komponensekkel mi is kihasználhatjuk ezt a kódolási lehetőséget, a kódolás és dekódolás egyaránt megoldható.

A kódolás neve abból adódik, hogy egy 64 karakterből álló US-ASCII karaktersorozatot használ. Mindegyik karakter max. 6 bites nyomtatható karakter kell hogy legyen, tehát a kis- és nagybetűk (angol ABC betűi), a számok, valamint a „+” és „/” karakterek. Az „=” karakternek speciális jelentése van. A kódolás lényege, hogy a 64 karakteres sorozatban található karakterek sorrendjét tetszés szerint variálhatjuk. Ha ezt nem tennénk meg, akkor a kódolt szöveg könnyedén visszafejthető lenne. Az alap sorozat a Base64CodeTable konstansban van megadva:
Base64CodeTable: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
A Delphi 6-ban a kódolásra és dekódolásra is van lehetőség. A kódolást kétféleképpen is megoldhatjuk. Az egyszerűbb módszer az, amikor az IdCoder3To4 unit-ban található Base64Encode függvényt használjuk.
Base64Encode
function Base64Encode(
const s: String
): String;
Ez a függvény paraméterként megadott sztringet kódolja a Base64 kódolási mechanizmus felhasználásával, és a kódolt sztringgel tér vissza.
Paraméterek
const s: String
Ebben a paraméterben adhatjuk meg a kódolandó sztringet.
Visszatérési érték
A függvény visszatérési értéke egy ASCII-7 karaktersorozat. Ebből a karaktersorozatból visszafejthető a kódolt sztring.
A másik módszer a kódolásra az Indy Misc palettán található IdBase64Encoder komponens. Ez a komponens nem rendelkezik speciális property-kkel és eseményekkel, csupán függvényeket és eljárásokat tartalmaz a kódoláshoz. Először is a Reset eljárást kell meghívnunk. Ha meg akarjuk változtatni a kódoláshoz használt 64 elemes karaktersorozatot, akkor azt a CodingTable property-vel tehetjük meg. Ebben a property-ben adhatjuk meg a karaktereket tartalmazó sztringet. Arra figyeljünk, hogy ez a sztring 64 karakter hosszú legyen, és ne tartalmazzon ismétlődő elemeket, valamint csak a 6 bittel megadható nyomtatható karaktereket használhatjuk benne.
A Reset után már kódolhatjuk is a sztringet a CodeString függvénnyel. Paraméterként itt is csak a kódolandó sztringet kell megadnunk. Az eredményt a CompletedInput property-ből olvashatjuk ki. A kapott sztring elején lévő két karaktert („0;”) törölnünk kell, mielőtt a kódolt sztringet dekódolnánk!
A dekódoláshoz szintén az Indy Misc palettán található IdBase64Decoder komponenst használhatjuk. Ennek használata teljes egészében megegyezik az IdBase64Encoder komponensével, csak itt a CodeString függvény paramétereként a kódolt sztringet kell megadni. Fontos, hogy a CodingTable property-nek meg kell egyeznie a kódoláskor használt kódtáblával (IdBase64Encoder CodingTable property-jének értékével). A visszafejtett sztring elején szintén megtalálhatók a „0;” karakterek, ezeket töröljük.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 281. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |