Advertisement
Wojtekd

steganografia

May 29th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. int BinToDec(string number)
  8. {
  9.     int result = 0, pow = 1;
  10.     for ( int i = number.length() - 1; i >= 0; --i, pow <<= 1 )
  11.         result += (number[i] - '0') * pow;
  12.  
  13.     return result;
  14. }
  15.  
  16. int main()
  17. {
  18.     int znak;
  19.     FILE *plik = fopen( "bash2.txt", "r" );
  20.  
  21.     string sBits = "";
  22.     bool prevSpace = false;
  23.    
  24.     int i = 0;
  25.     znak = getc( plik );
  26.     while( znak != EOF && i < 16 )
  27.     {
  28.         znak = getc( plik );
  29.        
  30.         if(znak != ' ')
  31.         {
  32.             if(prevSpace == true)
  33.             {
  34.                 // mamy zero
  35.                 i++;
  36.                 sBits += "0";
  37.             }
  38.         }
  39.         else
  40.         {
  41.             if(prevSpace == true)
  42.             {
  43.                 //mamy jedynke
  44.                 i++;
  45.                 sBits += "1";
  46.                 prevSpace = false;
  47.                 continue;
  48.             }
  49.         }        
  50.        
  51.         if(znak == ' ')
  52.         {
  53.             prevSpace = true;
  54.         }
  55.         else
  56.         {
  57.             prevSpace = false;
  58.         }
  59.     }
  60.    
  61.     int ilosc_bitow = BinToDec(sBits);
  62.    
  63.     cout << sBits << endl;
  64.     cout << "ilosc bitow: " << ilosc_bitow << endl;
  65.    
  66.     int ilosc_znakow = ilosc_bitow / 8;
  67.    
  68.     cout << "ilosc znakow: " << ilosc_znakow << endl;
  69.    
  70.     for(int x = 0; x < ilosc_znakow; x++)
  71.     {
  72.         i = 0;
  73.         sBits = "";
  74.         prevSpace = false;
  75.         //znak = getc( plik );
  76.         while( znak != EOF && i < 8 )
  77.         {
  78.             znak = getc( plik );
  79.            
  80.             if(znak != ' ')
  81.             {
  82.                 if(prevSpace == true)
  83.                 {
  84.                     // mamy zero
  85.                     i++;
  86.                     sBits += "0";
  87.                 }
  88.             }
  89.             else
  90.             {
  91.                 if(prevSpace == true)
  92.                 {
  93.                     //mamy jedynke
  94.                     i++;
  95.                     sBits += "1";
  96.                     prevSpace = false;
  97.                     continue;
  98.                 }
  99.             }        
  100.            
  101.             if(znak == ' ')
  102.             {
  103.                 prevSpace = true;
  104.             }
  105.             else
  106.             {
  107.                 prevSpace = false;
  108.             }
  109.         }
  110.         char nextChar = static_cast<char>(BinToDec(sBits));
  111.        
  112.         cout << nextChar;
  113.     }
  114.    
  115.    
  116.     fclose( plik );  
  117.        
  118.     return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement