[ don_mathew @ 22.11.2005. 13:28 ] @
Nema glupih pitanja samo odgovora kazu, pa cu da postavim jedno pitanje :)


Da li je moguce da neki file recimo extenzije *.exe otvorim u c++ njegov binarni zapis na disku i onda se malo poigram s mojim algoritmom da to sve ispremjestam da se na kraju ne zna koji je to fajl bio i da ga sacuvam u nekoj mojoj extenziji...

mislim da je to nesto kao rad sa kompresiom podataka...na nacin da se moze kompresirati svaki file i zapisati npr u extenziji *.zip e meni ne treba kompresija nego da kriptiram file-ove...
[ itf @ 22.11.2005. 13:32 ] @
Naravno da moze. To sto ti zelis se zove kriptiranje metodom premjestanja. Imas i metodu supstitucije. Za metodu premjestanja imas npr. Vermanovu sifru (ako su ti radio telekomunikacije blizi pojam :))
[ Ramirez @ 22.11.2005. 13:34 ] @
Programi za to vec postoje... ali idu malo dalje tako da samo "zakljucavaju" fajl i traze password ako zelis da ih "pokrenes"... ako pogodis on otpakuje fajl i pokrene ga. Nesto kao kada bi napravio selfextracting rar i stavio password na njega.
[ don_mathew @ 22.11.2005. 13:52 ] @
Code:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream in("sample.jpg", ios::binary);
    unsigned char bajt;
    while(!in.eof())
    {
        in >> bajt;
        unsigned char bit = 1;
        for (int i = 7 ; i >= 0 ;i--)
        {            
            (bajt & (bit << i)) ? cout << "1" : cout << "0";
        }
    }
    return 0;
}


e ovo je kod za ucitavanje fajla u binarnom modu samo me interesuje da li se na ovaj nacin ucita doslovno citav fajl sa headerom tj doslovno citav file kako je on zapisan na disku???

samo da navedem nije upitan algoritam za kriptiranje nego kako cu ja to otvarati i spremati...

e sad ako se poigram s ovim fajlom tj ispremjestam njegove bitove e onda cu mu sve shebati kad ga dekriptiram i imam ga tako dekriptiranog u memoriji npr kako ga sacuvati u extenziju u kojoj je bio...da li je u headeru filea zapisana extenzija kako izracunati koliki je header itd te stvarcice...pustite algoritme :) hvala...
[ Burgos @ 22.11.2005. 15:39 ] @
Problem je sto se u fajlovima javlja vise EOFa (ne u tekstualnim).

[Ovu poruku je menjao Burgos dana 22.11.2005. u 16:39 GMT+1]
[ NrmMyth @ 22.11.2005. 21:28 ] @
Citat:
Burgos: Problem je sto se u fajlovima javlja vise EOFa (ne u tekstualnim).

[Ovu poruku je menjao Burgos dana 22.11.2005. u 16:39 GMT+1]

Navedi primjer! ...

@don_mathew
Tako nesto sam i ja radio nedavno u C++, radio sam jednostavni chiper.
Sa citanjem do .eof() je uredu i ucitati ces cijeli fajl, ali ces i ucitati char EOF pa kad budes snimao na neki novi fajl snimaj do "velicina" - 1 byte.
Na ovo oko headera ja se nisam puno zajebavao, nego sam napravio u strukturi enkriptiranog fajl (medju ostalim);
[broj sljedecih bajtova koji predstavljaju ime][ime sljedeceg fajla][broj bajtovafajla][enkriptirani fajl]
I tako sam napravio bazu nesto kao .rar u koji mozes strpati vise fajlova od jednom.
Ako te zanima program pogledaj ovdje: F4T3
A ako te zanima kod javi mi na email.
[ don_mathew @ 23.11.2005. 20:27 ] @
Code:
#include <iostream.h>
#include <fstream.h>

int main()
{
    ifstream in("1.txt", ios::binary);
    ofstream out( "2.txt", ios::out|ios::binary );
    unsigned char bajt;
 
    while(!in.eof())
    {
       
        
        in >> bajt;
        out << bajt;

            
    }



    return 0;
  
}


e ovo je osnova koda koji mi treba al je fora u tome sto mi npr u txt fajlovima konkretno kad izvrsim kodo napravi fajl 2.txt ali zadnji karakter ispise 2 puta...

a kad radim npr sa jpg fajlovima uopce ne ispadne dobro...

jednostavno pitanje kako da kopiram bilo koji file byte by byte ? :) i da li je moguce to uraditi preko fstrem-a ?

[Ovu poruku je menjao don_mathew dana 23.11.2005. u 21:28 GMT+1]
[ don_mathew @ 23.11.2005. 21:05 ] @
Nova saznanja :D ovako ovim kodom sam uspio sa txt fajlovima ali sa jpg nema teorije jel mi moze tko objasniti foru ??? kad usporedim dva fajla orginalni i kopiju koju pokusavam napraviti ovim algoritmom dobijem razliku odmah na pocetku...usporedjujem ih u hexworksshop-u... jel moze mala pomoc konacno pa ima ovdje sigurno ljudi da to znaju...


Code:
#include <iostream>
#include <fstream>
using namespace std;

int main () {
  
    
    long begin,end;
  
    ifstream myfile ("1.txt", ios::binary);
    ofstream out( "2.txt", ios::out|ios::binary );
  
  begin = myfile.tellg();
  myfile.seekg (0, ios::end);
  end = myfile.tellg();
  myfile.seekg (0, ios::beg);
  
  int a = (end-begin);
     unsigned char bajt;

     
     
     
     
    for (int i = 0 ; i <= (a-1) ; i++ ) {





myfile >> bajt;
   out << bajt;
  }







  return 0;
}


dakle pitanje je zasto mi na ovu foru ne radi kopiranje jpg fajlova... ???vjerovatno nece ni exe ali jos nisam probao...
[ NrmMyth @ 23.11.2005. 22:20 ] @
Code:
#include <iostream>
#include <fstream>
using namespace std;

int main () {
  

long begin,end;
  
ifstream myfile ("1.txt", ios::in|ios::binary);
    ofstream out( "2.txt", ios::out|ios::binary );
  
  //begin = myfile.tellg();
  myfile.seekg (0, ios::end);
  end = myfile.tellg();
  myfile.seekg (0, ios::beg);
  
  //int a = (end-begin);
 unsigned char bajt;

 
for (int i = 0 ; i < end ; i++ ) {
myfile.read( &bajt, 1 );
   out.write( &bajt, 1 );
  }

  return 0;
}

Probaj sad. Ako ne radi definiraj malo bolje problem.
[ don_mathew @ 24.11.2005. 11:20 ] @
hvala velika...sve radi naravno uz veliku pomoc NrmMyth-a
kljucni dio je:

myfile.read( &bajt, 1 );
out.write( &bajt, 1 );

vjerovatno mi zato nije radilo ispravno...hvala...e sad se mogu posvetiti algoritmu...
[ NrmMyth @ 24.11.2005. 18:43 ] @
Nista. :)
[ Burgos @ 24.11.2005. 21:27 ] @
@NrmMyth:

Citat:
EOF marker

The end of file (EOF) file stream marker is a good indicator. Often, graphics files are truncated through errors in transmission or by a failed write operation to a disk. In such cases, when the file is read, the EOF will occur much sooner than a file format reader would have expected, and corruption of the file may be assumed.



http://www.fileformat.info

[Ovu poruku je menjao Burgos dana 24.11.2005. u 22:27 GMT+1]
[ NrmMyth @ 25.11.2005. 09:17 ] @
Citat:
Burgos: @NrmMyth:

http://www.fileformat.info

[Ovu poruku je menjao Burgos dana 24.11.2005. u 22:27 GMT+1]

Ali opet ti ovdje imas jedan EOF, koji je dosao nesto ranije nego ocekivano i zato nemas u potpunosti sliku.
[ Burgos @ 25.11.2005. 13:32 ] @
Da, ali onda se ne kriptuje fajl u potpunosti, zar ne?

[Ovu poruku je menjao Burgos dana 25.11.2005. u 14:33 GMT+1]
[ NrmMyth @ 25.11.2005. 21:00 ] @
Koliko sam ja razumio iza tog EOF-a nemas nista, jer je prijenos stao, a najavljeno je da ce se prenjeti vise od toga bajtov. Ispravi me ako sam u krivu.