base64

Apua kaipaava

Hei,

tarvitsisin apua base64 enkoodaus/dekoodaus -ohjelman tekoon.

Merkit luetaan stdin:stä. Enkoodaukseen käytän apuna base64 char-taulukkoa. Isoin ongelma mulle on tällä hetkellä se, etten käsitä miten kooditasolla muodostetaan ensin sisäänsyötettävistä merkeistä 24-bitin sekvenssi ja sitten se pilkotaan neljäksi kuuden bitin tavuksi. Lisäksi, voiko täydentämisen tehdä switch case -rakenteella?

Dekkodauksessa mulla on sama probleema, eli miten muodostetaan neljästä kuuden pitin mötkylästä 24-bitin sekvenssi ja sitten 3:ksi 8 bitin tavuiksi?

Tää on varmaan tosi helppo juttu, mutta en vaan kertakaikkiaan hoksaa. Tarvitsisin rautalankamallin koodin tekoon, paperilla kyllä asian osaan (eikä palkkien piirtely paperille ole tehnyt minusta yhtään viisaampaa), mutta bittioperaatioita en kertakaikkiaan onnistu luomaan, kun en tajua mitä niissä oikein siirtelen. Oisko täällä joku, joka tuntisi ko. kryptauksen ja kertoisi minulle selkokielellä, miten homma pitäis toteuttaa? ISO KIITOS etukäteen (nimim. viikon tietokoneen ruutua tuijottanut :-)

1

276

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Builder

      Mureakuhasta!
      Muokkaa siitä

      #include
      #include
      #include
      // Enkoodaukseen käytettävä lookup table */
      char base64encode_lut[] =
      {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q',
      'R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h',
      'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y',
      'z','0','1','2','3','4','5','6','7','8','9',' ','/','='};

      /* dekoodaukseen käytettävä lookup table */
      char base64decode_lut[] =
      {
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0,62, 0, 0, 0,63,52,53,54,55,56,57,58,59,60,61, 0, 0,
      0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,
      15,16,17,18,19,20,21,22,23,24,25, 0, 0, 0, 0, 0, 0,26,27,28,
      29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,
      49,50,51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      };

      /* enkoodaa base64:ksi.
      * src = lähde
      * dest = kohde
      * len = kohteen puskurin koko */
      void base64encode(char *src, char *dest, int len)
      {
      int i=0, slen=strlen(src);
      for(i=0;i0x2];
      *(dest )=base64encode_lut[(*src&0x3)0x4];
      *(dest )=((i 1)

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

    Luetuimmat keskustelut

    1. Kuka paiskasi vauvan betoniin Oulussa?

      Nimi esiin.....
      Oulu
      88
      5516
    2. Riikan kukkaronnyöri on umpisolmussa

      Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h
      Maailman menoa
      80
      4732
    3. Jos vedetään mutkat suoraksi?

      Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar
      Sinkut
      111
      3047
    4. Tanskan malli perustuu korkeaan ansioturvaan

      Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv
      Maailman menoa
      89
      2958
    5. Epäily: Räppäri yritti tappaa vauvansa.

      https://www.mtvuutiset.fi/artikkeli/epaily-mies-yritti-tappaa-vauvansa/9300728 Tämä on erittäin järkyttävä teko täysin p
      Maailman menoa
      23
      2584
    6. Vain vasemmistolaiset ovat aitoja suomalaisia

      Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.
      Maailman menoa
      61
      2039
    7. Anteeksipyyntöni

      Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska
      Järki ja tunteet
      25
      1976
    8. Miten must tuntuu

      et sä ajattelet mua just nyt
      Ikävä
      32
      1523
    9. Sydämeni valtiaalle

      En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden
      Ikävä
      114
      1439
    10. Kun et vain tajua että

      sua lähestytään feikkiprofiililla :D Hanki aivot :D m-n
      Ikävä
      185
      1328
    Aihe