Sizlere bu yazımda Delphide(Mobile dahil) 64bit veri şifreleme hakında biraz bilgi vereceğim.
Öncelikle nedir bu "Base64" onuna bakalım:
Base64 ikili verilerin (İngilizce: binary data) sadece ASCII karakterlerini kullanan ortamlarda iletilmesine ve saklanmasına olanak tanıyan bir kodlama şemasıdır.
Çalışma Şekli:
Kodlama sırasında 3 baytlık veriler 6 bitlik dörtlü gruplara dağıtılırlar. Her bir 6 bitlik grup 0 ile 63 arasında bir sayı oluşturur (26=64). Aşağıdaki eşleşmeye göre her sayı bir ASCII yazdırma karakterine dönüştürülür. Bir base64 kodlamasının uzunluğu daimi olarak 4' ün katları şeklindedir, uzunluğu 4' ün katı olmayan hiçbir metin geçerli bir base64 metin değildir. base64 kodlaması bitmiş bir verinin uzunluğu 4'ün katı değilse, gerektiği kadar '=' karakteri çıktının sonuna eklenir, örneğin uzunluğu 10 olan bir çıktının sonuna '==' eklenmelidir.
Bana göre genelde kullanım amacı lamerlerin veri iletişimizideki kodları takip etmesini zorlaştırmaktır. Zaten bir acemiye göre işinde profesyonel bir yazılımcı sizin stringinizi görür görmes bunun base64 ile şifrelendiğini bir bakışta anlar ve decode etmesi 5 dakikasını alacaktır.
İşin özü ve kısacası gereksiz insanların sizin textlerinize erişi mi zorlaştırmaktır.
Eğer kimse stringimi göremesin derseniz size MD5 şifrelemeyi öneririm tek taraflıdır :)
MD5 konu linki için tıklayınız!
Kodumuza dönersek:
Uses idGlobal, IdCoderMIME; function Sifrele(const T:String): String; var b64: TIdEncoderMIME; begin b64 := TIdEncoderMIME.Create; try Result := b64.EncodeString(T, IndyTextEncoding_UTF8 ) finally FreeAndNil(b64); end; end; function SifreCoz(const T:String): String; var b64: TIdDecoderMIME; begin b64 := TIdDecoderMIME.Create; try Result := b64.DecodeString(T, IndyTextEncoding_UTF8) finally FreeAndNil(b64); end; end;
Hocam ben base64 hatasını sunucuda oluşturduğum sitede alıyorum
YanıtlaSilLocalde sorun yok ama sunucuda hata veriyor veritabanı ile ilgiliyse base64 ü kapatmanïn bir yolu yok mu?