Olen koittanut etsiä netistä sekä MSDN:stä, mutta ei löytynyt mitään järellistä tietoa tiedostojen kryptaukseen.
API:lla tuo kait voitanee tehdä, mutta miten?
Myös muut keinot/esimerkkikoodit kelpaa.
Eli jos joltakulta löytyy esimerkkiä, niin tänne vaan.
Kävisikö DES / Triple DES kryptaus? Vaatii desdll.dll kirjaston lisäksi ja kaikki tarvittavat esimerkit ja kirjastot löytyvät osoitteesta http://www.kri-soft.be/vbdes/index.php . Kryptaa sekä merkkijonoja että tiedostoja 56 bittisellä avaimella.
Löysin tuon joskus kun tarvitsin kryptaustoimintoja ohjelmaani.
Miten järeää kryptausta olet hakemassa? Kirjastoja kyllä löytyy vaikka sun mille algoritmille -- ei tarvitse paljoa omaa päätään vaivata.
ei tarbvitse olla mikään järeä.
Muistini mukaan kyllä pitäisi APIllakin saada kryptattua tai jollakin VB:n mukana tulevalla kirjastolla.
Liittyy jotenkin "advapi32.dll" kirjastoon ja "Microsoft Base Cryptographic Provider v1.0"
Tosin mitään monimutkaista en hae, riittää, kun saisi tekstitiedoston jollakin tapaa sotkettua helposti lukukelvottomaksi, jonka vain ohjelma osaa aukaista.
Mitään muiden tekemiä kirjastoja en oikein viitsisi käyttää, kuten trinitin mainitsemaa, jonka lisenssi kieltää niiden käytön maksullisissa softissa. Tosin en ole edes varma, saanko tuota koskaan maksullisena julkaistua. siis mitä nyt olen rakentamassa.
lainaus:
riittää, kun saisi tekstitiedoston jollakin tapaa sotkettua helposti lukukelvottomaksi
Tämä nyt ei ihan taida aiheeseen kuulua, mutta mikäli tiedosto pitää vain sotkea siten, ettei kuka tahansa SunnuntaiHakkeri(tm) :) pysty tiedostoa lukemaan ainakaan kovin helposti niin katsopa seuraava koodiesimerkki:
Public Function RevChar(rc As String) As String Dim tmp As String For i = 1 To Len(rc) tmp = tmp & Chr$(255 - Asc(Mid$(rc, i, 1))) Next RevChar = tmp End Function
Koodi kertonee parhaiten mitä se tekee, mutta lyhyesti sanottuna vähennetään jokaisen merkkijonon merkistä 255 jolloin kys. merkki muuttuu joksikin toiseksi. "Kryptaus" aukeaa samalla funktiolla. Tuo on vain helppo purkaa kun vain keksii miten tiedosto on alunperin sotkettu.
Kun puhe on nyt kryptauksesta, niin tulipa mieleen entä kun tuollaiseen laittaa vielä salasanan? Miten tarkistetaan että salasana jolla tiedosto on suojattu, on oikein? Asia kun on minua mietityttänyt useastikin. Ja myös sekin että kun kirjautuu johonkin järjestelmään, miten se järjestelmä varmistaa salasanan oikeellisuuden?
-Grey-
lainaus:
Kun puhe on nyt kryptauksesta, niin tulipa mieleen entä kun tuollaiseen laittaa vielä salasanan?
Yksinkertaistettu esimerkki: Tiedostossa on merkit ABCDEFGHIJKLMNO ja salasana on TESTI. Nyt salasanaa toistetaan niin monta kertaa, että saadaan kaksi samanpituista merkkijonoa, joista jälkimmäinen on salausavain:
A B C D E F G H I J K L M N O T E S T I T E S T I T E S T I
Eli ASCII-koodeina:
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 84 69 83 84 73 84 69 83 84 73 84 69 83 84 73
Tämän jälkeen ylemmän ja alemman rivin ASCII-koodit ynnätään toisiinsa:
149 135 150 152 142 154 140 155 157 147 159 145 160 162 152
Nyt tiedosto on salakirjoitettuna seuraavanlainen:
ò ç û ÿ Ä Ü î ø Ø ô ƒ æ á ó ÿ
Purkaminen tapahtuu täsmälleen päinvastoin.
Salasanan oikeellisuuden voi tarkistaa checksummilla (ZIP ja RAR taitavat molemmat käyttää CRC-32:ta). Ja tosiaan, 'järjestelmissä' homma menee usein myös jonkin hashin kautta, eli verrataan etukäteen tallennettua hashia käyttäjän antaman salasanan hashiin.
Suhteellisen erikoinen tapa kryptata tiedosto on seedata VB:n satunnaislukugeneraattori jollain määrätyllä luvulla (joka voidaan vaikka arpoa ensin, ja sitten tallentaa tiedostoon), sitten vaikkapa Xor:ailla tiedoston tavuja yksitellen RND:stä saaduilla luvuilla. Dekryptauksessa sitten vain otetaan tiedostosta se seedi (vaikkapa 4-tavuinen), alustetaan satunnaislukugeneraattori sillä, ja Xor:ataan taas (Xor on "käännettävissä", 1 Xor 2 = 3 ja 3 Xor 2 = 1).
Jos tuosta nyt selvää sai, niin kannattaa ottaa vielä huomioon VB:n RND:n ihmeellisyydet. Eli lähinnä se, että "Randomize seed":in jälkeen tulee kutsua "foo = Rnd(-1)":stä, muuten VB ei palauttele samoja arvoja mitä kryptatessa.
Tuolta löytyi sellainen, jota kaipailin.
Eiköhän tuosta saa muokkaamalla omaan ohjelmaani sopivan.
Onko tuosta mihinkään?
Aihe on jo aika vanha, joten et voi enää vastata siihen.