Avatar billede stigc Nybegynder
10. juni 2004 - 22:04 Der er 12 kommentarer og
1 løsning

Hjælp med AES kryptering

jeg har fundet en rimelig ren implentering, som kompiler fint i med dev-c

http://www.cr0.net:8040/code/crypto/aes/

Den indeholder blandt andet.

void aes_decrypt( aes_context *ctx, uint8 input[16], uint8 output[16] )
void aes_encrypt( aes_context *ctx, uint8 input[16], uint8 output[16] )
int aes_set_key( aes_context *ctx, uint8 *key, int nbits )

Men hvordan kalder jeg den lige. Hvis vi nu siger jeg har

char* text = "Der var engang";
char* key = "hemmelig"

og jeg vil gerne have text krypteret og de-krypteret?
Avatar billede arne_v Ekspert
10. juni 2004 - 22:25 #1
Avatar billede stigc Nybegynder
10. juni 2004 - 22:29 #2
Godt, kigger på det.
Avatar billede arne_v Ekspert
10. juni 2004 - 22:31 #3
Jeg arbejder på et lille eksempel.
Avatar billede arne_v Ekspert
10. juni 2004 - 22:33 #4
#include <stdio.h>

#include "aes.h"

int main()
{
  char text[16] = "Der var engang",crypttext[16],plaintext[16];
  char key[] = "hemmelig";
  aes_context ctx;
  aes_set_key(&ctx,key,128);
  aes_encrypt(&ctx,text,crypttext);
  aes_decrypt(&ctx,crypttext,plaintext);
  printf("%s -> %2X%2X%2X%2X... -> %s\n",text,crypttext[0],crypttext[1],crypttext[2],crypttext[3],plaintext);
  return 0;
}
Avatar billede arne_v Ekspert
10. juni 2004 - 22:34 #5
Lidt simplere end det i koden selv ...  :-)
Avatar billede stigc Nybegynder
10. juni 2004 - 22:37 #6
Ja et meget bedre eksempel som virker fint, og nu ligger det her til når andre har brug for det. Læg et svar.
Avatar billede stigc Nybegynder
10. juni 2004 - 22:40 #7
Fylder de krypterede bytes altid lige som meget som udgangspunktet?
Avatar billede arne_v Ekspert
10. juni 2004 - 22:41 #8
Ja - det mener jeg.
Avatar billede arne_v Ekspert
10. juni 2004 - 22:41 #9
svar
Avatar billede stigc Nybegynder
10. juni 2004 - 22:45 #10
Har du prøvet med en tekst større end 16 tegn? Er det mening man skal kryptere/dekryptere små bider ad gangen?
Avatar billede arne_v Ekspert
10. juni 2004 - 22:49 #11
Ja - det er en low level som krypterer 16 bytes.

Skriv selv en wrapper som kan klare vilkårlige lange strenge
ved at padde op til multipla af 16 og kalder funktionen
flere gange - eller find en på nettet.
Avatar billede stigc Nybegynder
10. juni 2004 - 22:52 #12
Ok, takker.
Avatar billede arne_v Ekspert
10. juni 2004 - 22:54 #13
Hvis du skal være strengt AES kompatibel, så skal du nærlæse hvad der står om padding.

Sommetider skal der bruges noget specielt.
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