Forum: Diğer Konular RSS
Dosya Şifrelemenin Mantığı Nedir?
agora #1
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Dosya Şifrelemenin Mantığı Nedir?
Selam dosya şifrelemede mantık nedir?

Geri dönüşlü şifreleme olduğunu düşünelim yani XOR olsun mesela

Dosyam: dosya.txt içinde yazılar var

Şifreli dosya: şifreli.txt => garip karakterler var

Bu tarz şifrelemeler gördüm ama mantığını anlatan Türkçe site yok dil bilgim yetmediğinden kavrayamadım.

Şifreli dosyadaki garip karakterleri tekrar eski haline döndürüyorlar bir de. En çok mantığımı zorlayan da o oldu aslında düzgün türkçe makale olsa anlarım ama direkt kod verilmiş :/ Ben kodu değil de işlemini merak ediyorum.

D ile nasıl yaparız mesela?
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Amaç, dosyadaki gizli bilginin yalnızca şifreyi bilen kişiler tarafından okunmasını sağlamak. O amacı sağlayan istediğin algoritmayı kullanabilirsin ama bu işin bilimi de çok derin. Güvenlik düzeyi çok önemli.

D'de Sezar şifrelemesi (http://tr.wikipedia.org/wiki/Sezar_%C5%9Fifrelemesi):
import std.stdio;
import std.conv;
import std.algorithm;
import std.array;
 
int main(string[] parametreler)
{
    if (parametreler.length != 3) {
        writefln("Kullanım: %s {encrypt | decrypt} <atlama>", parametreler[0]);
        writefln("Örnek: %s encrypt 3", parametreler[0]);
        return 1;
    }
 
    // Kaç harf ileriye atlanacağı
    int atlama = parametreler[2].to!int;
 
    // Şifre çözülürken geriye atlamalıyız
    if (parametreler[1] == "decrypt") {
        atlama = -atlama;
    }
 
    immutable dstring alfabe = "abcçdefgğhıijklmnoöprsştuüvyz";
 
    foreach (satır; stdin.byLine) {
        foreach (dchar harf; satır) {
            const bulunan = alfabe.find(harf);
 
            if (bulunan.empty) {
                // Tanımadığımız harfi olduğu gibi yazdırıyoruz
                write(harf);
 
            } else {
                // Harfin hangi konumda olduğu
                const yeri = alfabe.length - bulunan.length;
 
                // O harfe karşı gelen harfi bulmak için bir hesap (alfabeden
                // taşınca tekrar başa geçsin diye)
                const karşıtı =
                    (yeri + atlama + alfabe.length.to!int) % alfabe.length;
 
                write(alfabe[karşıtı]);
            }
        }
 
        writeln();
    }
 
    return 0;
}
Art arta iki çıktısı:
$ ./deneme encrypt 3
merhaba dünya
öğtjçdç gzpbç

$ ./deneme decrypt 3
öğtjçdç gzpbç
merhaba dünya

Ali
agora #3
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Geceden beri deneme yapiyorum hocam tesekkur ederim.

XORlayip sifreldosya olarak out veriyorum.

Ama sifreli dosyayi tekrar normal olarak ciktilayamiyorum.

Simdi bu yazdiginiz kod ile sanirim mantigini kavrayacagim tesekkur ederim hocam.

Benim halihazirda bi ugrastigim sifre sistemi var ama cok buyudu kod satiri baya fazla oldu kafam karisti haliyle. Onun son halini uygulayacagim sanirim.

Tekrar tesekkur ederim hocam.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-20, 01:20:37 (UTC -08:00)