Avatar billede needs Nybegynder
15. maj 2001 - 09:09 Der er 24 kommentarer og
1 løsning

kryptering

Er der nogen som ved hvilken variabel man skal bruge når man skal gange tal med sig selv 1400 i c++ så det bliver rigtig store tal rigtig store tal?
Er der også nogen der kan sige mig hvilke funtioner man bruger når man skal have f.eks. \'a\' til at blive et tal som 64 og tilbage igen(Det finds i VB6 som asc()); ups nej det var . jeg ville skrive.
Avatar billede borrisholt Novice
15. maj 2001 - 09:11 #1
du kan bage bruge en __int64 den skulle være stor nok ...

Jens B
Avatar billede needs Nybegynder
15. maj 2001 - 09:20 #2
hvilken .h fil skal #include\'s hvi der alså skal #include\'s nogen?
Heder den _int64 og ikke int64?
Er det cb eller vc du bruger?
Avatar billede borrisholt Novice
15. maj 2001 - 09:24 #3
den hedder __int64 og den er defineret i windows.h jeg mener den også hedder det samme i CB ellers hedder den int64 det kan jeg ikke huske .. Check online hjælpen.

Jens B
Avatar billede needs Nybegynder
15. maj 2001 - 09:25 #4
jeg bruger VC så det er lige meget
Avatar billede emileej Nybegynder
15. maj 2001 - 10:09 #5
Den slags kryptering jeg bruger (principielt):

char *dinStreng=\"Hej med dig Nicolai\", chr;
int incVal=14000;
printf(\"Be4 kryptering: %s\\n\",dinStreng);
for(int i=0;i<=strlen(*dinStreng);i++){
  chr=dinStreng[i];
  chr=(char)((int)chr+incVal);
  chr %= 256;
  dinStreng[i]=chr;
}
printf(\"Efter kryptering: %s\",dinStreng);

E-)mil
http://eej.dk
http://fotx.net/emileej
Avatar billede emileej Nybegynder
15. maj 2001 - 10:10 #6
Upz - GANGE :)

char *dinStreng=\"Hej med dig Nicolai\", chr;
int incVal=14000;
printf(\"Be4 kryptering: %s\\n\",dinStreng);
for(int i=0;i<=strlen(*dinStreng);i++){
  chr=dinStreng[i];
  chr=(char)((int)chr*incVal);
  chr %= 256;
  dinStreng[i]=chr;
}
printf(\"Efter kryptering: %s\",dinStreng);

E-)mil
http://eej.dk
http://fotx.net/emileej
Avatar billede needs Nybegynder
16. maj 2001 - 20:54 #7
Det ser ikke særligt på lidlit ud emil da jeg kun vil bruge min ejen for af rsa som kan laves så sikker at kun U.S.A\'s super computere vil kunne  dekrytere koden, når de alså først finder ud af hvordan det er lavet og det har jeg nogel rimmelige gode planer. Finds der andre testede, nemme og gode krypterings-systemmer vil jeg da godt høre fra jer det ud.
Avatar billede dejbjerg Nybegynder
17. maj 2001 - 06:05 #8
1) Du kan bruge en double, den fylder 8 bytes og kan rumme værdier fra 1,7*10^-308 til 1,7*10^308.
Hvis du ikke mener det er nok kan du bruge en long double, som fylder 10 bytes og kan rumme fra 3,4*10^-4932 til 3,4*10^4932. (Og så behøver du ikke at #include noget)

2) I C++ svarer udtrykket
char ch = \'a\';
til udtrykket
char ch = 97;
eller for den sags skyld til
char ch = 0x61;

hvilket vil sige at du kan regne og bruge udtryk med varablen ch, som var det et tal.

Men prøv følgende program:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
for (char stor = \'A\', lille = \'a\'; stor <= \'Z\'; stor++, lille++)
cout << endl
<< \"\\t\" << stor
<< dec << setw(10) << static_cast<int>(stor)
<< \"  \" << lille
<< dec << setw(10) << static_cast<int>(lille);
cout << endl;
return 0;
}

Avatar billede needs Nybegynder
17. maj 2001 - 08:57 #9
tak for svaret men dejberg du er alså lidt for lang som.
Avatar billede skovborg Nybegynder
25. maj 2001 - 14:12 #10
Hej needs

Jeg ved du har fået klaret dig problem men her er en krypteringsform der i modsætning til alle andre fromer for kryptering IKKE kan brydes... jeg ved at det er store ord men det er sandt.

filen plaintext er den fil du ønsker at kryptere
filen ciffertext er den krypteret fil
filen key er nøglen til krypteringen

du læser her efter plaintext og key ind som char
herefter lægger du disse sammen det vil sige plaintext+key = ciffertext

ciffertext gemmer du så

når du så skal dekryptere filen så siger du bare
ciffertext-key=plaintext

det eneste problem ved denne form for kryptering er at både afsenderen og modtageren skal være i besiddelse af den samme key fil og at key filen skal være mindst samme størrelse som plaintext.

key filen kan f.eks. være et billede af Poul nyrup eller en sang med Poul Dissing.

vi ses
Skovborg

Avatar billede emileej Nybegynder
25. maj 2001 - 19:20 #11
>>Skovborg

Ubrydelig? Fedt! Det er den samme metode jeg benytter :)~

E-)mil
http://eej.dk
http://fotx.net/emileej
Avatar billede dejbjerg Nybegynder
27. maj 2001 - 19:10 #12
Hvad skal du så bruge \"rigtig store rigtig store\" tal til?

Det er også samme metode jeg bruger!

Keyfilen behøver ikke at være større.

#include <iostream.h>

ifstream MyStream(\"test\")

if (!MyStream.eof())
  krypter
else
  begynd forfra på keyfil
  krypter


 
Avatar billede emileej Nybegynder
27. maj 2001 - 19:49 #13
>>dejbjerg

Exactly - netop hvad jeg bruger (pluds lidt mere bagefter :) )

E-)mil
http://eej.dk
http://fotx.net/emileej
Avatar billede needs Nybegynder
28. maj 2001 - 17:47 #14
Skovborg den metode du bruger er ikke en \"rigtig\" form for kryptering; det er bare Xor kryptering men den kan da bruges hvis du kan få en hel fil ind i 1 variable. Hvis nogen kan det så skriv løs.
Avatar billede skovborg Nybegynder
28. maj 2001 - 19:02 #15
Jeg prøver lige igen jeg har lige skrevet en hel roma om kryptering men da jeg trykkede udfør forsvandt alt !!!!
Jo, needs det er faktisk kryptering. Kryptering er kunsten at forvanske klartekst til Ciffertext, det er ikke nødvendigt med flotte algoritmer, nogle gange er det mest simpelt det bedste ;-)~.
Der er ikke nødvendigt at læse alt ind i en variabel jeg har lavet et program i JAVA jeg tror nok du kan læse hvad jeg mener :   
try{
FileInputStream filnavn=new FileInputStream(plaintext);
FileInputStream kryptfil=new FileInputStream(krypttext);
FileOutputStream filout=new FileOutputStream(ciffertext);

while(((i=filnavn.read())!=-1)&&((i2=kryptfil.read())!=-1)){
ki=i+i2;
    text=(char)ki;
    System.out.print(\"\"+ki);
    filout.write(ki);
    }
filnavn.close();
kryptfil.close();
filout.close();

Jeg læser som du kan se en char ind af gangen.

Denne form for kryptering er ubrydelig fordi nøglen er af samme længde som filen der skal krypteres. Grunden til den ikke benyttes er netop længden af nøglen.
Prøv det, prøv det du kan føle dig meget mere tør..


Vi ses
Skovborg
Avatar billede dejbjerg Nybegynder
29. maj 2001 - 15:15 #16
Jeg glemte at logge ind, så min kommentar forsvandt - jeg prøver lige igen.

Vær opmærksom på hvilke filtyper du bruger som keyfiler. Nogle af dem har temmelig mange bytes i starten som er ens fra fil til fil.

Ved at sammenligne forskellige filer af samme type i en hex editor kan man se hvor mange.

For jpg filer handler det om minimum 15 byte.
For word dokumenter er det mellem 100 og rigtig mange.
For txt filer er tallet så vidt jeg kan se 0.

Begynd evt. lidt inde i keyfilen.

Avatar billede needs Nybegynder
29. maj 2001 - 15:46 #17
Tak dejbjerg. Skovborg : Som du selv siger det er ikke \"rigtig\" kryptering og når jeg mener rigtig er det for di den skal være en 64 bit\'s nøgle eller mere. Men DIG OG DEJBJERG har gevet mig en ide ; hvis man laver en 20 tegn lang txt/dat/nkf(selv opfundet fil type) fil som krypt kode og bruger skovborg\'s 1 tegn\'s metodekan man lave en ubrudelig kode!!!!!!!!!!!!!!;-)~

needs
Avatar billede needs Nybegynder
29. maj 2001 - 15:47 #18
P.S. Jeg staver af lort til.
Avatar billede emileej Nybegynder
29. maj 2001 - 17:16 #19
>>needs

Precis hvad jeg har prøvet at få igennem - i min pryktering er det bare ikke en fil, men en eller flere koder man indtaster :)

E-)mil
http://eej.dk
http://fotx.net/emileej
Avatar billede skovborg Nybegynder
30. maj 2001 - 16:47 #20
hej igen
Hvis man som kryptfil i bruger et billede af poul nyrup f.eks. poulN.jpg der har en størrelse på 100 mb og man har et dokument der er på 183 kb benytter han bare de første 183 kb parvis og stopper når man er kommet til enden af den krypteret fil derved er nøglen lige så lang som filen der skal krypteres og derfor ubrydelig..

jo længere nøglen er jo sværere er det at bryde for man undgår gentagelser igennem filen der skal krypteres.

vi ses
skovborg
Avatar billede dejbjerg Nybegynder
31. maj 2001 - 23:30 #21
>>needs

Hvis du ikke har tænkt dig at bruge mere en 20 tegn som nøgle, er der ikke nogen grund til at bruge en fil. Du kan ligeså godt bruge

char key[21];
eller
char key[];(har den fordel at ingen kan vide hvor langt kodeordet er)

og så skrive koden ned.

Hvis du alligevel skal bruge en fil så hellere en lang end en kort - jo længere jo sværere at bryde. Det er rigtigt, som Skovborg siger, at den eneste ubrydelige kode er en fil, der er minimum lige så lang som den fil, der skal krypteres.
Avatar billede needs Nybegynder
07. juni 2001 - 13:22 #22
Jeg bruger da heller ikke en fil.

needs
Avatar billede dejbjerg Nybegynder
08. juni 2001 - 00:37 #23
Så har jeg misforstået noget..

\"hvis man laver en 20 tegn lang txt/dat/nkf(selv opfundet fil type) fil som krypt kode og bruger skovborg\'s 1 tegn\'s metodekan man lave en ubrudelig kode!!!!!!!!!!!!!!;-)~\"
Avatar billede needs Nybegynder
13. juni 2001 - 14:06 #24
Når det er det du mener. Nej det er fordi jeg vil lave det sådan at jeg kan skifte kode i mit program uden at skulle re-compile.

needs
Avatar billede dejbjerg Nybegynder
14. juni 2001 - 01:22 #25
OK
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester