Monday, 27 December 2010

Cryptography Sederhana (3)


"aBcDvWxYz = Saya Gamer dan Programmer!"


Tulisan ini merupakan lanjutan dari:
Cryptography Sederhana (1)
Cryptography Sederhana (2)

Waktunya proteksi si 'Dia'. Ok, berikut ini kode yang akan meminta user memasukkan angka lalu disimpannya :


/*
Source Code ini adalah bahan/materi
yang berasal dari blog:

http://membuatgamedengancpp.blogspot.com/

*/
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>
#include <sstream>
#include <cstdlib>

int main(){
    int angka=0;
    printf("Masukkan Angka = ");
    scanf("%d",&angka);

    std::stringstream angkaPalsu;
    angkaPalsu << angka;
    std::string samarkan;
    samarkan = angkaPalsu.str();

    for( int c=0;c < samarkan.length();c++){
        samarkan[c]+= (10 + c);
    }

    printf("\n\nAngka Asli = %d\n",angka);
    printf("Angka disamarkan = %s\n"
            "Dan telah disimpan\n\n",samarkan.c_str());

    std::ofstream saveAngka("data.hs");
    saveAngka << samarkan;
    saveAngka.close();

    system("pause");
    return 0;
}

//- krofz

Format yang disimpan adalah .hs, yang tidak lain adalah file teks biasa. Sebelum angka yang dimasukkan user disimpan ke dalam file, terlebih dahulu kita enkripsikan. Berbeda dengan cipher sebelumnya yang hanya menambahkan 1 poin, disini yang ditambahkan berjumlah 10 + c. Yang dimana nilai c ini berubah sesuai panjangnya karakter. Contoh jika kita masukkan nilai 2500, maka bilangan 2500 ini dikonversi terlebih dulu kedalam bentuk string yang berarti ada 4 karakter, yaitu '2','5','0', dan '0'. Baru setelah ini dienkripsi dengan menambahkan urutan karakter (lihat Cryptography Sederhana (2)), sehingga 2500 menjadi <@<=. Atau terlihat seperti gambar berikut:

Gambar 1. Angka 2500 ditambah 10 + c.

Setelah save game pasti ada load game atau continue. Berikut kode load game-nya:


/*
Source Code ini adalah bahan/materi
yang berasal dari blog:

http://membuatgamedengancpp.blogspot.com/

*/
#include <stdio.h>
#include <string>
#include <fstream>
#include <sstream>
#include <cstdlib>

int main(){

    //jika file tidak ada maka angkanya adalah 0
    int angkaNya = 0;
    std::ifstream getAngka("data.hs");

    if( getAngka != NULL){
        //strAngka = string angka
        std::string strAngka = "2500";
        getAngka >> strAngka;

        bool error = false;
        for( int c=0;c < strAngka.length();c++){
            strAngka[c] -= (10 + c);

            //jika saat deskripsi yang didapat bukan angka 0-9
            //intinya harus mikir 2 kali kalau mau nge-hack ;)
            if( strAngka[c] < '0' || strAngka[c] > '9'){
                error = true;
                break;
            }
        }

        if( error){
            printf("Maaf, angka yang diproses gagal\n\n");
        }
        else{
            //strToAngka = String ke angka
            std::stringstream strToAngka;
            strToAngka << strAngka.c_str();
            strToAngka >> angkaNya;
            printf("Angka = %d\n\n",angkaNya);
        }
    }
    else{
        printf("Maaf, file tidak ditemukan\n\n");
    }

    getAngka.close();

    system("pause");
    return 0;
}

Algoritmanya adalah kebalikan dari sebelumnya, jika sebelumnya ditambahkan sekarang dikurangi. Hanya tinggal mengganti operan yang digunakan hehe . Karena file ini dapat diutak-atik dengan notepad, sehingga rentan sekali untuk diganti menjadi huruf atau karakter lainnya. Jika saat di deskripsi atau dikonversi ke angka terjadi kesalahan karena hasilnya bukan karakter angka (0-9). Maka dapat dipastikan 99% file ini telah dihack! dengan gagal hahahaha , 1%-nya adalah kesalahan program, penulisan file yang gagal, file korup di Harddisk, virus, dsb (buset 1% dengan banyak kemungkinan).

Semua Source Code dan Program diatas (atau kode sebelumnya) dapat di download melalui link ini. Jika anda masih bingung dengan kode-kode aneh diatas silahkan lihat artikel-artikel sebelumnya .

- krofz

No comments:

Post a Comment

Maaf jika komentar anda lama terbitnya ^__^, penulis berusaha OL sesering mungkin. Komentar anda adalah semangat blog ini, dan juga semangat para blogger lainnya. You can use XHTML tags: <a href="" rel="link"> </a>, <strong> </strong>, <b> </b>, <em> </em>, <i> </i>.

Spesial character use :
&lt; for <
&gt; for >


Use Pastebin.com for alternative to display your code :) .

 

back to top

back to top