<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>İsmail Ata KURT &#187; C/C++</title>
	<atom:link href="http://degiske.com/category/programlama/cc/feed/" rel="self" type="application/rss+xml" />
	<link>http://degiske.com</link>
	<description>fındıklı kahve ile güçlendirilmiş blog :)</description>
	<lastBuildDate>Tue, 24 May 2011 21:43:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>libavcodec ve libavformat ile video bilgilerini öğrenmek</title>
		<link>http://degiske.com/2011/05/24/libavcodeclibavformat-ile-video-bilgilerini-ogrenmek/</link>
		<comments>http://degiske.com/2011/05/24/libavcodeclibavformat-ile-video-bilgilerini-ogrenmek/#comments</comments>
		<pubDate>Tue, 24 May 2011 21:22:22 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[libavcodec]]></category>
		<category><![CDATA[libavformat]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://degiske.com/?p=369</guid>
		<description><![CDATA[libavcodec,libavformat  free software/open source LGPL-lisanslı ffmpeg tarafından kullanılan codec çözme / işleme kütüphanesidir.
Ubuntu &#8211; Debian altında örnek kodu derleyebilmek için gerekli paketler :
 
$ sudo apt-get install libavcodec-dev libavformat-dev
Derlemek için :
g++ avf.cpp -I/usr/include/libavcodec -I/usr/include/libavformat -lavformat -lavcodec -L/usr/lib/libavformat.so -L/usr/lib/libavcodec.so -o avf
Örnek Kullanım :

./avf test.mp4
Çıktı :
Video codec       : mp42
Width       : 1920
Height    [...]]]></description>
			<content:encoded><![CDATA[<p>libavcodec,libavformat  <a href="http://en.wikipedia.org/wiki/Free_software">free software</a>/<a href="http://en.wikipedia.org/wiki/Open_source">open source</a> <a title="GNU Lesser General Public License" href="http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License">LGPL</a>-lisanslı ffmpeg tarafından kullanılan codec çözme / işleme kütüphanesidir.</p>
<p><strong>Ubuntu &#8211; Debian altında örnek kodu derleyebilmek için gerekli paketler :</strong></p>
<p><strong> </strong><br />
$ sudo apt-get install libavcodec-dev libavformat-dev</p>
<p><strong>Derlemek için :</strong></p>
<p>g++ avf.cpp -I/usr/include/libavcodec -I/usr/include/libavformat -lavformat -lavcodec -L/usr/lib/libavformat.so -L/usr/lib/libavcodec.so -o avf</p>
<p><strong>Örnek Kullanım :<br />
</strong><br />
./avf test.mp4</p>
<p><strong>Çıktı :</strong></p>
<p>Video codec       : mp42</p>
<p>Width       : 1920</p>
<p>Height      : 1080</p>
<p>Duration    : 300</p>
<p>Audio codec   : aac</p>
<p>Audio channels    : 2</p>
<p>Audio samplerate  : 44100</p>
<p>Audio bitrate     : 128</p>
<pre class="brush:cpp">#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)
#endif

extern "C" {
#include &lt;avcodec.h&gt;
#include &lt;avformat.h&gt;
}

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;iostream&gt;

//g++ avf.cpp -I/usr/include/libavcodec -I/usr/include/libavformat -lavformat -lavcodec -L/usr/lib/libavformat.so -L/usr/lib/libavcodec.so -o avf

using namespace std;

int main(int argc, char *argv[])
{
	av_log_set_level(0);
	av_register_all();
	AVFormatContext *pFormatCtx;
	const char      *filename=argv[1];

	// Open video file
	if(av_open_input_file(&amp;pFormatCtx, filename, NULL, 0, NULL)!=0)
	{
	   cout &lt; &lt; "can't open file" &lt;&lt; endl;
	   exit(-1);
	}	

	// Retrieve stream information
	if(av_find_stream_info(pFormatCtx)&lt;0)
	{
	  cout &lt;&lt; "can't get stream info" &lt;&lt; endl; 	  exit(-1); 	} 	//dump_format(pFormatCtx, 0, filename, false); 	int            i, videoStream; 	AVCodecContext *pCodecCtx; //http://ffmpeg.org/doxygen/0.6/structAVCodecContext.html 	AVCodecContext *pCodecCtx2; 	 	pCodecCtx=pFormatCtx-&gt;streams[0]-&gt;codec;
	pCodecCtx2=pFormatCtx-&gt;streams[1]-&gt;codec;

	AVCodec* vCodec;//http://ffmpeg.org/doxygen/0.6/structAVCodec.html
	AVCodec* aCodec;
	vCodec=avcodec_find_decoder(pCodecCtx-&gt;codec_id);
	aCodec=avcodec_find_decoder(pCodecCtx2-&gt;codec_id);

	cout &lt; &lt; "Video codec       : " &lt;&lt; vCodec-&gt;name &lt; &lt; endl;
	cout &lt;&lt; "Width    	  : " &lt;&lt; pCodecCtx-&gt;width &lt; &lt; endl;
	cout &lt;&lt; "Height   	  : " &lt;&lt; pCodecCtx-&gt;height &lt; &lt; endl;
	cout &lt;&lt; "Duration 	  : " &lt;&lt; pFormatCtx-&gt;duration &lt; &lt; endl;
	//cout &lt;&lt; "codec id	  : " &lt;&lt; (int)pCodecCtx2 &lt;&lt; endl;
	cout &lt;&lt; "Audio codec	  : " &lt;&lt; aCodec-&gt;name &lt; &lt; endl;
	cout &lt;&lt; "Audio channels    : " &lt;&lt; pCodecCtx2-&gt;channels &lt; &lt; endl;
	cout &lt;&lt; "Audio samplerate  : " &lt;&lt;  pCodecCtx2-&gt;sample_rate &lt; &lt; endl;
	cout &lt;&lt; "Audio bitrate     : " &lt;&lt;  pCodecCtx2-&gt;bit_rate &lt; &lt; endl;

	avcodec_close(pCodecCtx);
	avcodec_close(pCodecCtx2);

	av_close_input_file(pFormatCtx);
	return 0;
}</pre>
<p><a href="http://degiske.com/wp-content/uploads/avf.zip">Örnek kod</a></p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2011/05/24/libavcodeclibavformat-ile-video-bilgilerini-ogrenmek/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vigenere Şifrelemesi (Vigenere Cipher)</title>
		<link>http://degiske.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/</link>
		<comments>http://degiske.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/#comments</comments>
		<pubDate>Wed, 06 Dec 2006 05:42:28 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[algoritma]]></category>

		<guid isPermaLink="false">http://blog.livaxmedia.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/</guid>
		<description><![CDATA[
Vigenere Şifreleme tekniği, 16. yüzyılda Fransa 3. Henry Kraliyet üyesi Blaise de Vigenere tarafından bulunmuştur. Burada birbiri yerine kullanılacak harfleri belirlemek için Vigenere Tablosu kullanılır. İngiliz Alfabesi için Tablo 26&#215;26 boyutlarındadır.

Şifreleme bir anahtar kullanılarak yapılır ve anahtardaki harfler tablonun başlık satırında aranır. Buna karşılık düz metindeki harf tablonun başlık sütununda aranır. Bulunan satır ve sütunun [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify; text-indent: 36pt" class="MsoNormal"><img id="image67" alt="180px-Vigenere.jpg" src="/wp-content/uploads/2006/12/180px-Vigenere.jpg" /></p>
<p style="text-align: justify; text-indent: 36pt" class="MsoNormal">Vigenere Şifreleme tekniği, 16. yüzyılda Fransa 3. Henry Kraliyet üyesi Blaise de Vigenere tarafından bulunmuştur. Burada birbiri yerine kullanılacak harfleri belirlemek için Vigenere Tablosu kullanılır. İngiliz Alfabesi için Tablo 26&#215;26 boyutlarındadır.</p>
<p style="text-align: justify; text-indent: 36pt" class="MsoNormal"><img id="image68" alt="180px-Confederate_cipher_disk.jpg" src="/wp-content/uploads/2006/12/180px-Confederate_cipher_disk.jpg" /></p>
<p style="text-align: justify" class="MsoNormal">Şifreleme bir anahtar kullanılarak yapılır ve anahtardaki harfler tablonun başlık satırında aranır. Buna karşılık düz metindeki harf tablonun başlık sütununda aranır. Bulunan satır ve sütunun kesiştiği yerdeki harf, düz metindeki harfin yerine konarak şifreleme işlemi gerçekleştirilir.</p>
<p style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal"><img id="image65" alt="320px-Vigenere-square.jpg" src="/wp-content/uploads/2006/12/320px-Vigenere-square.jpg" /></p>
<p style="text-align: justify" class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal"><span style="font-size: 10pt; font-family: NimbusSanL-Regu; color: black"> </span></p>
<p class="MsoNormal"><span style="color: black"> </span></p>
<p class="MsoNormal"><span style="color: black"> </span></p>
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal">
<p style="margin-bottom: 6pt" class="MsoNormal"><span style="color: black">Şöyle bir örnek verebiliriz:</span></p>
<p class="MsoNormal">Anahtar kelime :LEMONLEMONLE</p>
<p class="MsoNormal">Düz Metin :ATTACKATDAWN</p>
<p class="MsoNormal">Şifreli Metin :LXFOPVEFRNHR</p>
<p class="MsoNormal">
<p class="MsoNormal">
<p style="text-align: justify" class="MsoNormal"><img align="left" alt="400px-Vigenere_letter_frequencies.PNG" id="image69" src="http://blog.livaxmedia.com/wp-content/uploads/2006/12/400px-Vigenere_letter_frequencies.PNG" /></p>
<p class="MsoNormal">
<p class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">
<p align="left" style="text-align: justify; text-indent: 36pt" class="MsoNormal">Şifreli metindeki tekrar eden desenler bulunup, bunlar arasındaki uzaklık hesaplanarak anahtar uzunluğu belirlenebilir. Örneğin anahtar uzunluğu <em>N</em> olarak bulunursa, <em>N</em> tane (Anahtardaki harfler birbirinden farklı ise) tek alfabeli Yerine-Koyma şifreleme tekniği kullanıldığı anlaşılır. Bu aşamada artık her bir tek alfabeli şifreli metne, <em>ayrı ayrı</em>, düz metin harflerinin frekans karakteristiklerini kullanan bir saldırı gerçekleştirilebilir.</p>
<p class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">Vigenere Şifreleme tekniği ilk kez 1854’de Charles Babbage tarafından kırılmıştır. Charles’ın kullandığı frekans analizi yaklaşımı, kripto analistlere bir araç olmuştur.</p>
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal"><a href="http://blog.livaxmedia.com/wp-content/uploads/2006/12/vigenere_cipher.zip">Visual C++ 6 Proje dosyaları</a>  &#8211;  <a href="/wp-content/uploads/2006/12/vigenere_cipher.zip?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7" /><a target="_blank" title="/gozat/vigenere_c/" href="/gozat/vigenere_c/?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">Gozat</a></p>
<p style="text-align: justify" class="MsoNormal"><a href="/wp-content/uploads/2006/12/vigenere_CS.zip?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">C#</a> &#8211; <a target="_blank" href="/gozat/vigenere_cs/?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">Gözat</a></p>
<p style="text-align: justify" class="MsoNormal">Kaynaklar :</p>
<p><a href="http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher">http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher</a><br />
<a href="http://ab.org.tr/ab05/tammetin/22.doc"> http://ab.org.tr/ab05/tammetin/22.doc</a></p>
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p style="text-align: justify" class="MsoNormal">
<p class="MsoNormal">
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2006/12/06/vigenere-sifrelemesivigenere-cipher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>write in C :)</title>
		<link>http://degiske.com/2006/07/16/write-in-c/</link>
		<comments>http://degiske.com/2006/07/16/write-in-c/#comments</comments>
		<pubDate>Sat, 15 Jul 2006 22:08:29 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Geyik]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[komik]]></category>

		<guid isPermaLink="false">http://blog.livaxmedia.com/2006/07/16/write-in-c/</guid>
		<description><![CDATA[WRITE IN C
(sung to The Beatles &#8220;Let it Be&#8221;)
When I find my code in tons of trouble,
Friends and colleagues come to me,
Speaking words of wisdom:
&#8220;Write in C.&#8221;
As the deadline fast approaches,
And bugs are all that I can see,
Somewhere, someone whispers&#8221;
&#8220;Write in C.&#8221;
Write in C, write in C,
Write in C, write in C.
LISP is dead and [...]]]></description>
			<content:encoded><![CDATA[<p>WRITE IN C<br />
(sung to The Beatles &#8220;Let it Be&#8221;)</p>
<p>When I find my code in tons of trouble,<br />
Friends and colleagues come to me,<br />
Speaking words of wisdom:<br />
&#8220;Write in C.&#8221;</p>
<p>As the deadline fast approaches,<br />
And bugs are all that I can see,<br />
Somewhere, someone whispers&#8221;<br />
&#8220;Write in C.&#8221;</p>
<p>Write in C, write in C,<br />
Write in C, write in C.<br />
LISP is dead and buried,<br />
Write in C.</p>
<p>I used to write a lot of FORTRAN,<br />
for science it worked flawlessly.<br />
Try using it for graphics!<br />
Write in C.</p>
<p>If you&#8217;ve just spent nearly 30 hours<br />
Debugging some assembly,<br />
Soon you will be glad to<br />
Write in C.</p>
<p>Write in C, write in C,<br />
Write In C, yeah, write in C.<br />
Only wimps use BASIC.<br />
Write in C.</p>
<p>Write in C, write in C,<br />
Write in C, oh, write in C.<br />
Pascal won&#8217;t quite cut it.<br />
Write in C.</p>
<p>Guitar Solo</p>
<p>Write in C, write in C,<br />
Write in C, yeah, write in C.<br />
Don&#8217;t even mention COBOL.<br />
Write in C.</p>
<p>And when the screen is fuzzy,<br />
And the edior is bugging me.<br />
I&#8217;m sick of ones and zeroes.<br />
Write in C.</p>
<p>A thousand people people swear that T.P.<br />
Seven is the one for me.<br />
I hate the word PROCEDURE,<br />
Write in C.</p>
<p>Write in C, write in C,<br />
Write in C, yeah, write in C.<br />
PL1 is 80&#8217;s,<br />
Write in C.</p>
<p>Write in C, write in C,<br />
Write in C, yeah, write in C.<br />
The government loves ADA,<br />
Write in C.</p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2006/07/16/write-in-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Can sıkıntısı + merak  = 3DNow! &#8216;lı  İstatistik :)</title>
		<link>http://degiske.com/2006/05/17/can-sikintisi-merak-3dnow-li-istatistik/</link>
		<comments>http://degiske.com/2006/05/17/can-sikintisi-merak-3dnow-li-istatistik/#comments</comments>
		<pubDate>Wed, 17 May 2006 05:28:10 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[İstatistik]]></category>

		<guid isPermaLink="false">http://blog.livaxmedia.com/?p=21</guid>
		<description><![CDATA[
Dün can sıkıntısınında etkisiyle bişiler yapim dedim aklımdada şöle istatistikle
lgili basit bir örnek yapıp bloğuma koymak vardı.. Ama gene duramadım gittim
AMD&#8217;nin geliştirici makalelerini okudum 3Dnow! teknolojisi örneklerini inceledim
ve Varyans , Standart sapma ve ortalamaları 3DNow! kullanarak hesaplattım
sonuç ilk 3DNow! denemem için hiçde fena değil  

Peki nedir bu 3Dnow! ?
3DNow!  AMD&#8217;nin kendi işlemcileri için [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="3dnow_kapak" id="image20" src="/wp-content/uploads/2006/05/3dnow.gif" /></p>
<p>Dün can sıkıntısınında etkisiyle bişiler yapim dedim aklımdada şöle istatistikle<br />
lgili basit bir örnek yapıp bloğuma koymak vardı.. Ama gene duramadım gittim<br />
AMD&#8217;nin geliştirici makalelerini okudum 3Dnow! teknolojisi örneklerini inceledim<br />
ve Varyans , Standart sapma ve ortalamaları 3DNow! kullanarak hesaplattım<br />
sonuç ilk 3DNow! denemem için hiçde fena değil <img src='http://degiske.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img id="image22" alt="3dnow2" src="/wp-content/uploads/2006/05/3dnow2.gif" /></p>
<p>Peki nedir bu 3Dnow! ?</p>
<p><strong>3DNow!  </strong>AMD&#8217;nin kendi işlemcileri için geliştirdiği multimedya komut setidir ,<br />
ilk defa 1998 yılında K6-2&#8242;ye eklenmiştir.<br />
İşlemcinin grafik yoğunluklu uygulamalar için vektör işleme ihtiyaçlarını karşılamak için dizayn edilmiştir.</p>
<p><strong>3DNow!</strong> Destekleyen işlemciler</p>
<p>K6-2 ve sonrası AMD işlemciler K6-III,Athlon,Duron,Atlon XP,Sempron,Athlon 64<br />
Athlon 64 X2,Opteron,Turion 64, Turion 64 X2,Geode NX</p>
<p>Via C3 ve daha günceli</p>
<p>IDT Winchip 2 ve daha günceli</p>
<p>Msvc++ dosyalarını derleyebilmeniz için;<a href="http://msdn.microsoft.com/vstudio/previous/vs6/downloads/default.aspx" /></p>
<p><a href="http://msdn.microsoft.com/vstudio/downloads/tools/ppack/default.aspx">Visual Studio 6.0 Processor Pack</a> yüklemelisiniz.<br />
Processor Pack için ise <a href="http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp5/default.aspx">Visual Studio 6.0 Service Pack 5.0</a>&#8216;ı kurmanız gerekiyor<br />
Ben SP 6.0&#8242;ı yükleyim yer dedim yemedi <img src='http://degiske.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  mutlaka Service Pack 5.0 yüklemelisiniz.</p>
<p><a href="/wp-content/uploads/2006/05/3DNow!.zip?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">İndirmek için tıklayın</a></p>
<p>Not: İstatistik yalan  değildir , beşer şaşar <img src='http://degiske.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2006/05/17/can-sikintisi-merak-3dnow-li-istatistik/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sezar şifrelemesi (Caesar Cipher)</title>
		<link>http://degiske.com/2006/05/15/sezar-sifrelemesi/</link>
		<comments>http://degiske.com/2006/05/15/sezar-sifrelemesi/#comments</comments>
		<pubDate>Mon, 15 May 2006 03:19:41 +0000</pubDate>
		<dc:creator>Xcoder</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[algoritma]]></category>

		<guid isPermaLink="false">http://gezegen.livaxmedia.com/?p=4</guid>
		<description><![CDATA[
Tarihin ilk kriptolojik fikirleri İngilizce&#8217;de transposition and substitution cipher adını taşır, yani yer değiştirme ve harf değiştirme şifrelemesi. Bu yöntemlerden ilki bir yazıdaki harflerin yerlerini değiştirerek, ikincisi ise harfleri başka harflerle değiştirerek elde edilir. Bu şifrelemeyi kullanan belki de en ünlü teknik Sezar Şifresi&#8217;dir: bu şifrede, her harf o harften birkaç sonraki harf kullanılarak yazılır. [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="sezar shift" id="image7" src="/wp-content/uploads/2006/05/300px-Sezar_sifresi.gif" /></p>
<p>Tarihin ilk kriptolojik fikirleri İngilizce&#8217;de <em>transposition and substitution cipher</em> adını taşır, yani <em>yer değiştirme ve harf değiştirme şifrelemesi</em>. Bu yöntemlerden ilki bir yazıdaki harflerin yerlerini değiştirerek, ikincisi ise harfleri başka harflerle değiştirerek elde edilir. Bu şifrelemeyi kullanan belki de en ünlü teknik Sezar Şifresi&#8217;dir: bu şifrede, her harf o harften birkaç sonraki harf kullanılarak yazılır. Örneğin, 3 harf atlamalı Sezar Şifresi&#8217;nde &#8220;<strong>deneme</strong>&#8221; yerine &#8220;<strong>fğrğpğ</strong>&#8221; yazılır.</p>
<p>Öte yandan, Sezar Şifresi kırmak görece kolay olmaktadır: bir filolog bir dilde en çok geçen harfleri bulabilir. O harfler ile mesajda en sık geçen harfleri karşılaştırarak hangi harfin hangi harf ile değiştirildiği bulunabilir. Bu adımların ardından, mesaj çözülmüş olur..</p>
<p><strong>İngilizce&#8217;deki harflerin dağılımı</strong></p>
<p><img alt="alfabe histogramı" title="alfabe histogramı" src="/wp-content/uploads/2006/05/320px-English-slf.png" /></p>
<p>İşte bu basit şifrelemenin C ile yazılışı.</p>
<p><code></code></p>
<p>/*Author : ismail Ata Kurt<br />
18.04.2006<br />
*/</p>
<p>#include &#8220;stdafx.h&#8221;<br />
#include &#8220;stdlib.h&#8221;</p>
<p>int s_ascii[] = {97,98,99,100,101,102,103,104,105,106,107,108,109,110</p>
<p>,111,112,113,114,115,116,117,118,119,120,121,122};</p>
<p>int b_ascii[] = {65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81</p>
<p>,82,83,84,85,86,87,88,89,90};</p>
<p>int caesar_crypt(char* source,char* target,int k);<br />
char caesar_char_crypt(char chr,int k);</p>
<p>int caesar_decrypt(char* source,char* target,int k);<br />
char caesar_char_decrypt(char chr,int k);</p>
<p>int main(int argc, char* argv[])<br />
{<br />
int k=1;//the shift parameter, here 1, is used as the key)</p>
<p>caesar_crypt(&#8220;plain_text.txt&#8221;,&#8221;encoded_text.txt&#8221;,k);//crypts plain_text.txt to encoded_text.txt<br />
caesar_decrypt(&#8220;encoded_text.txt&#8221;,&#8221;new_plain_text.txt&#8221;,k);//decrypts encoded_text.txt to new_plain_text.txt</p>
<p>return 0;<br />
}</p>
<p>int caesar_crypt(char* source,char* target,int k) {</p>
<p>int i=0;<br />
int o=0;</p>
<p>FILE *sf;//Source File<br />
FILE *tf;//Target File<br />
char temp;</p>
<p>char *text = new char;</p>
<p>char *sig = &#8220;{top secret}&#8221;;</p>
<p>if ( (sf = fopen(source, &#8220;r&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aERROR: Can&#8217;t open input file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>while ( ( temp = fgetc(sf)) != EOF ) {</p>
<p>o++;<br />
text[o-1] = caesar_char_crypt(temp,k);</p>
<p>}</p>
<p>if ( fclose( sf ) )<br />
printf(&#8220;\a\aERROR: Can&#8217;t close source file!\n&#8221;);</p>
<p>if ( (tf = fopen(target, &#8220;w&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aERROR: Can&#8217;t open target file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>for(i=0;i< =11;i++) {<br />
fputc(sig[i],tf);<br />
}<br />
for(i=0;i< =o;i++) {<br />
fputc(text[i],tf);<br />
}</p>
<p>if ( fclose( tf ) )<br />
printf(&#8220;\a\aERROR: Can&#8217;t close target file!\n&#8221;);</p>
<p>return 0;<br />
}</p>
<p>int caesar_decrypt(char* source,char* target,int k) {</p>
<p>int i=0;<br />
int o=0;</p>
<p>FILE *sf;//Source File<br />
FILE *tf;//Target File</p>
<p>char temp;</p>
<p>char *text = new char;<br />
char *sig = &#8220;{top secret}&#8221;;</p>
<p>if ( (sf = fopen(source, &#8220;r&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aError: Can&#8217;t open target file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>while ( ( temp = fgetc(sf)) != EOF ) {</p>
<p>o++;</p>
<p>if(o>12) {</p>
<p>text[o-13] = caesar_char_decrypt(temp,k);<br />
//printf(&#8220;%d\n&#8221;,o-13);</p>
<p>} else {<br />
if(sig[o-1]!=temp){<br />
printf(&#8220;\a\aError: Not&#8217;a ceasar cipher encoded file!\n&#8221;);<br />
exit(1);<br />
}<br />
}</p>
<p>}</p>
<p>if ( fclose( sf ) )<br />
printf(&#8220;\a\aError: Can&#8217;t close file!\n&#8221;);</p>
<p>if ( (tf = fopen(target, &#8220;w&#8221;)) == NULL )<br />
{<br />
printf(&#8220;\a\aError: Can&#8217;t open target file!\n&#8221;);<br />
exit(1);<br />
}</p>
<p>for(i=0;i< =o;i++) {</p>
</p>
<p>fputc(text[i],tf);<br />
}</p>
<p>if ( fclose( tf ) )<br />
printf(&#8220;\a\aError: Can&#8217;t close target file!\n&#8221;);</p>
<p>return 0;<br />
}</p>
<p>char caesar_char_crypt(char chr,int k) {</p>
<p>int i=0;<br />
int s=0;<br />
char temp;</p>
<p>for(i=0;i< =25;i++) {</p>
</p>
<p>if(int(chr) == s_ascii[i]) {</p>
<p>s++;<br />
temp = s_ascii[((k+i) % 25)];<br />
break;</p>
<p>}<br />
if(int(chr) == b_ascii[i]) {</p>
<p>s++;<br />
temp = b_ascii[((k+i) % 25)];<br />
break;</p>
<p>}</p>
<p>}</p>
<p>if(s >=1) {<br />
return temp;<br />
} else {<br />
return chr;<br />
}<br />
}</p>
<p>char caesar_char_decrypt(char chr,int k) {</p>
<p>int i=0;<br />
int s=0;<br />
char temp;</p>
<p>for(i=0;i< =25;i++) {</p>
</p>
<p>if(int(chr) == s_ascii[i]) {</p>
<p>s++;<br />
temp = s_ascii[((i-k) % 25)];<br />
break;</p>
<p>}<br />
if(int(chr) == b_ascii[i]) {</p>
<p>s++;<br />
temp = b_ascii[((i-k) % 25)];<br />
break;</p>
<p>}</p>
<p>}</p>
<p>if(s >=1) {<br />
return temp;<br />
} else {<br />
return chr;<br />
}<br />
}</p>
<p><a href="/wp-content/uploads/2006/05/caesar_cipher.zip?phpMyAdmin=N%2Csx89UfvNKhbWUoKDi9drgLJU7">Microsoft VC++ 6 proje dosyaları</a></p>
]]></content:encoded>
			<wfw:commentRss>http://degiske.com/2006/05/15/sezar-sifrelemesi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

