Nem kryptering af streng?

Tags:    c++

Hej...

Jeg har brug for at gemme en streng i registrerings-databasen. Lige nu bliver den bare gemt som alm. tekst hvilket ikke er videre hensigtsmæssigt :)
Er der en en indbygget funktion til lige at kryptere den en lille smule (og selvfølgelig dekryptere) den igen?
Jeg bruger Borland C++ Builder 6.0 i WinXP.

Tak for hjælpen og god Jul
Jesper



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Du samler heller ikke på point her Bertel? Bruger din Hex-funktioner, de er alt rigelige....
Tak for hjælpen også til dig Jess.
Godt Nytår når I når dertil.


Vær opmærksom på at omdanne til hex er IKKE en kryptering! Du kan evt. modificer den så den benytter sig af "Cæcars algoritme". Den er IKKE sikker, men er simpel at implementeret.

Givet en krypteringsfunktion (e) og en dekrypteringsfunktion (d), der ser ud som beskrevet nedenfor. Her er "k" din nøgle, der kan varetage en værdi i intervallet [0;25], "x" er din klartekst (altså din hexværdi) og "y" er din ciphertekst. Bemærk 26 er valgt da det er svarende til de 26 bogstaver i det engelsksproget alfabet.

e(x) = (x + k % 26)
d(y) = (y - k % 26)

Krypteringen kan hurtigt brydes med en exhaustive key search, da der kun er 26 mulige nøgler eftersom det er en monoalfabetisk kryptering. Udvid evt. selv krypteringsfunktionen, så den bliver polyalfabetisk. Dette vil også gøre en eventuel exhaustive key search mere besværlig (men ikke umulig).

Generelt når man laver kryptering så er der to regler, der altid skal overholdes.

1) Algoritmen skal være offentlig
2) Nøglen skal være privat

Hth



Så vidt jeg ved har borland builder en udmærket hjælpfunktion, så hvis du prøver at trykke F1 og se om du kan finde noget



Jeg havde denne til at ligge på lageret:

Fold kodeboks ind/udKode 


Jeg har vist postet den før.




Når man skal kryptere skal man IKKE begynde at lave sin egen krypteringsalgoritme! Det er langt fra sikkert og det tager oftest ikke lang tid at bryde krypteringen da ens egen algoritme oftest indeholder mange huller idet den ikke har været igennem reviews.

Der findes flere muligheder for kryptering. Man kan fx vælge at bruge openssl (som kan porteres til andre platforme) eller man kan bruge Windows Crypto API. Skal applikationen kun kunne køres på en Windows platform, så vil jeg anbefale at du anvender Windows Crypto API (CAPI). Du kan se et eksempel på hvordan du anvender det på nedenstående url.

http://www.codeproject.com/cpp/EncryptionCryptoAPI.asp


Hth





Så sikkert behøver det nu ikke at være. Det var bare så ordet ikke stod direkte i Reg. basen.
Jeg havde egentlig bare tænkt på at lave det om til en hex-værdi men jeg synes ikke jeg kan finde nogen StrToHex-agtig funktion i Borland? Eller i den indbygede writexxxtoreg funktion i Borland. Der er kun writeinttoreg og writestringtoreg, ingen hextoreg.
Nogen idéer?



Måske:

Fold kodeboks ind/udKode 





En anden måde at kryptere på er også at anvende RC4 som er en stream cipher kryptering. Denne er dog naturligvis ikke så stærk, men til gengæld noget hurtigere.


http://www.codeproject.com/cpp/RC4CPP_DK.asp


Hth



Du samler heller ikke på point her Bertel? Bruger din Hex-funktioner, de er alt rigelige....
Tak for hjælpen også til dig Jess.
Godt Nytår når I når dertil.



Indlæg senest redigeret d. 29.12.2006 16:06 af Bruger #10808
t