Skip to content

Instantly share code, notes, and snippets.

@TalhaAkkas
Created March 20, 2011 21:42
Show Gist options
  • Save TalhaAkkas/878702 to your computer and use it in GitHub Desktop.
Save TalhaAkkas/878702 to your computer and use it in GitHub Desktop.
Kripto
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string adres, sifre, adi, yazi, sifreli;
int[] sirano;
FileStream yazilan;
StreamReader dosya;
StreamWriter kripto;
Console.Write("lütfen sifrelenecek yazının bulunduğu dosyanın adını sonuna .txt eklemeden yazin");
adi = Console.ReadLine();
adres = Path.GetFullPath(adi + ".txt");
Console.Write("şifrenizde türkçe karakterler kullanabilirsiniz fakat '.' ',' v.b. karakterleri kullanmayınız ");
sifre = Console.ReadLine();
sifre.ToLower();
sirano = sirala(sifre);
dosya = new StreamReader(adres);
yazi = dosya.ReadToEnd();
yazi.ToLower();
sifreli = sifrele(yazi, sifre, sirano);
yazilan = new FileStream(adi+"sifrelenmis.txt", FileMode.OpenOrCreate);
yazilan.Close();
kripto = new StreamWriter(adi+"sifrelenmis.txt");
kripto.Write(sifreli);
dosya.Close();
kripto.Close();
}
static int[] sirala(string sifre )
{
string[] taban = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e",
"f","g","h","i","j","k","l","m","n","o","p","q","r",
"s","t","u","v","w","x","y","z","ç","ğ","ı","ö","ş",
"ü"," "};
int harfno = 0, karilastirilansirasi = 0;
int[] sirasayisidizin = new int[sifre.Length+1];
for (int siralanansayisi = 0; siralanansayisi < sifre.Length; siralanansayisi += 1)
{
for (; karilastirilansirasi < sifre.Length; karilastirilansirasi += 1)
{
if (karilastirilansirasi == siralanansayisi)
{
karilastirilansirasi = karilastirilansirasi;
}
else if (Array.IndexOf(taban, Convert.ToString(sifre[siralanansayisi])) < Array.IndexOf(taban, Convert.ToString(sifre[karilastirilansirasi])))
{
harfno = harfno;
}
else if (Array.IndexOf(taban, Convert.ToString(sifre[siralanansayisi])) > Array.IndexOf(taban, Convert.ToString(sifre[karilastirilansirasi])))
{
harfno += 1;
}
else if (siralanansayisi > karilastirilansirasi)
{
harfno += 1;
}
}
sirasayisidizin[siralanansayisi] = harfno;
Console.WriteLine(harfno);
harfno = 0;
karilastirilansirasi = 0;
}
return sirasayisidizin;
}
static string sifrele(string yazi, string sifre, int[] sirasayisidizin)
{
int eksik, tümsatirlarinsayisi, satirsirasi, harfsirasi, sira;
string dizi, sifrelicode = "";
double rast;
Random x = new Random();
Console.Write(yazi);
if ((yazi.Length / sifre.Length) * yazi.Length < yazi.Length)
{
eksik = ((yazi.Length - (yazi.Length / sifre.Length)) * sifre.Length);
dizi = "qwertyuıopğüasdfghjklşizxcvbnmöç1234567890";
while (eksik > 0)
{
rast = x.NextDouble();
sira = Convert.ToInt16(rast * 42);
yazi += dizi[sira];
eksik = (yazi.Length - ((yazi.Length / sifre.Length) * sifre.Length));
}
}/* bu bölüm yazinin sonuna rastgele harfler ekleyerek sifreleme sirasinda veri kaybını engelliyor*/
tümsatirlarinsayisi = yazi.Length / sifre.Length;
satirsirasi = 0;
while (satirsirasi < tümsatirlarinsayisi)
{
harfsirasi = 0;
while (harfsirasi < sifre.Length)
{
sifrelicode += yazi[(sifre.Length * satirsirasi) + Array.IndexOf(sirasayisidizin, harfsirasi)];
harfsirasi+=1;
}
satirsirasi += 1;
}
return sifrelicode;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment