(de?)Kryptaus... melkein (char-pulma)

harrastaja591

(Pahoittelen Suomi24:ää, että se jättää osan pois, mutta voinette arvata puutteet.)

Tämä harjoitustyö tekee oikeasti jotain. Se kryptaa ja dekryptaa,mutta matkalla teksti muuttuu oudosti. Esim. osa kirjaimista tuplaantuu. Mistä on kyse ja miten sen voi korjata?

Avaimeksi hyvin sopivan kohinakuvan voi tehdä "kuvaamalla" peitetyllä linssillä 10-30 sekunnin valotusajalla suurimmalla iso-arvolla ja pakkaus löysimmällä. Mikä tahansa kuva käy, mutta sitten on viisaampaa kasvattaa muuttujaa "hyppy".

********************************************* kryptaus.cpp
#include //tässä pitäisi olla iostream, string ja fstream
#include
#include
int alku=12345; //alussa on epäsatunnaisuutta, joka ohitetaan
int hyppy=7; //peräkkäisillä tavuilla voi olla riippuvuutta
int av;
int vi;
int y;
int kr;
char ca;
char cv;
int main ()
{
using namespace std;
fstream avain;
fstream viesti;
avain.open("kohinakuva.jpg", ios::in |ios::binary);
viesti.open("viesti.txt",ios::in |ios::out |ios::binary);

for(y=0;y> ca;
viesti.seekg(y);
viesti >> cv;
av=ca;
vi=cv;
kr=av vi;
if(kr>255) {kr=kr-256; }

viesti.seekp(y);
cv=kr;
viesti ca;
viesti.seekg(y);
viesti >> cv;
av=ca;
vi=cv;
kr=vi-av;
if(kr

4

649

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • -anon-

      Nojoo, yleensä nois muunnosfunkkareis on ihan hyvä testi vuoksi tehdä käänteisfuntio samalla ja vaikka assertoida asioita. Perusongelma kyllä näin kääntämättä näyttää olevan se että hävität informaatiota tuolla 256 hässäkällä. Koska kerran luet ja kirjoitat 8 bittiä ja laskutoimituksesi ovat väh 32 bittisiä niin siinä aina joskus infoo jää käyttämättä. Muuta käyttämään loogisia bittioperaatioita kuten xor etc... Tai kirjoita salauksesti samantien 4 kertaa isommaksi kuin alkuperäinen kirjoittamalla laskutoimituksen tulos inttinä levylle ja lukemalla se inttinä levyltä.
      Vielä sellainen tiedostojen käsittelyyn littyvä asia että kannattaa kirjoittaa salattu viesti eri tiedostoon, asiat sujuu helpommin.

      • juuso*

        ??


      • taikuri-hb
        juuso* kirjoitti:

        ??

        tms..


    • harrastaja591

      vika löytyi. pitää olla:

      virtaolio >> noskipws >> muuttuja;

      noskipws muuttaa extraction- tai voisiko sanoa (?) syöteoperaattorin toimintaa niin ettei tyhjiä (tai "tyhjiä") skipata.

      no-skip white spaces

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ensi kesänä

      Näin kesän viimeisenä minuutteina ajattelen sinua. Olisiko seuraava kesä "meidän" kesä? Tänä vuonna ei onnistuttu, mutta
      Ikävä
      64
      3315
    2. Tukalaa kuumuutta

      Tietäisitpä vaan kuinka kuumana olen käynyt viime päivät. Eikä johdu helteestä, vaan sinusta. Mitäköhän taikoja olet teh
      Ikävä
      43
      3127
    3. Sinä, ihastukseni

      Mitä haluaisit tehdä kanssani ensimmäisenä?
      Ihastuminen
      43
      2508
    4. Anne Kukkohovin karmeat velat ovat Suomessa.

      Lähtikö se siksi pois Suomesta ? Et on noin kar? mean suuret velat naisella olemassa
      Kotimaiset julkkisjuorut
      113
      2435
    5. Tiedät ettei tule toimimaan.

      Mielenterveys ei kummallakaan kestä.
      Ikävä
      31
      1933
    6. Okei, myönnetään,

      Oisit sä saanut ottaa ne housutkin pois, mutta ehkä joskus jossain toisaalla. 😘
      Ikävä
      27
      1830
    7. Onko kaivatullasi

      himmeä kuuppa?
      Ikävä
      48
      1626
    8. Mihin hävisi

      Mihin hävisi asiallinen keskustelu tositapahtumista, vai pitikö jonkin Hannulle kateellisen näyttää typeryytensä
      Iisalmi
      85
      1435
    9. On jo heinäkuun viimeinen päivä.

      En taida nähdä sinua koskaan.
      Rakkaus ja rakastaminen
      39
      1300
    10. Lähtikö korvat

      puhtaaksi vaikusta?
      Tuusniemi
      82
      1169
    Aihe