Forum » Programiranje » [C/C++] Linux kriptiranje
[C/C++] Linux kriptiranje
Tutankhamun ::
Js bi rad kriptirov string.
Neki sm se matrov, pa sm komi neki najdu. Zdej pa neki ne dela, mi jav segmentation fault.
Še koda
prevajam pa tko: g++ -lcrypt crypt.cpp
Neki sm se matrov, pa sm komi neki najdu. Zdej pa neki ne dela, mi jav segmentation fault.
Še koda
#include <stdio.h> #include <rpc/des_crypt.h> void show(unsigned char *buf) { int i; for(i=0;i<8;i++) { printf("%03d ",buf[i]); } printf("\n"); } char *des_error[]={"DESERR_NONE", "DESERR_NOHWDEVICE", "DESERR_HWERROR", "DESERR_BADPARAM" }; main() { char key[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff }; char *txt="12345678"; int err; /* encode txt with key */ show(key); show(txt); err=ecb_crypt(key,txt,8, DES_ENCRYPT | DES_SW ); // pri teli vrstici pade printf("%s\n",des_error[err]); show(txt); err=ecb_crypt(key,txt,8, DES_DECRYPT | DES_SW ); printf("%s\n",des_error[err]); show(txt); }
prevajam pa tko: g++ -lcrypt crypt.cpp
AMD Phenom QUAD 9950 Black Edition, 8GB
Gundolf ::
Pomoje je char *txt="12345678"; problem.
Če ti tole kar inline kriptira potem bi znalo biti da rabiš malo več prostora za kriptirano besedilo ali pa da ne moreš ravno konstante kriptirat (ti narediš eno konstanto "12345678" in potem s tvojim pointerjem pokažeš nanjo). Sej verjetno maš kakšen primer narjen zraven te knjižnice ki jo uporabljaš.
Če ti tole kar inline kriptira potem bi znalo biti da rabiš malo več prostora za kriptirano besedilo ali pa da ne moreš ravno konstante kriptirat (ti narediš eno konstanto "12345678" in potem s tvojim pointerjem pokažeš nanjo). Sej verjetno maš kakšen primer narjen zraven te knjižnice ki jo uporabljaš.
BigWhale ::
man, man, oh beautiful man..
Function: int ecb_crypt (char *key, char *blocks, unsigned len, unsigned mode)
The function ecb_crypt encrypts or decrypts one or more blocks using DES. Each block is encrypted independently.
The blocks and the key are stored packed in 8-bit bytes, so that the first bit of the key is the most-significant bit of key[0] and the 63rd bit of the key is stored as the least-significant bit of key[7]. The key should have the correct parity.
len is the number of bytes in blocks. It should be a multiple of 8 (so that there is a whole number of blocks to encrypt). len is limited to a maximum of DES_MAXDATA bytes.
Function: int ecb_crypt (char *key, char *blocks, unsigned len, unsigned mode)
The function ecb_crypt encrypts or decrypts one or more blocks using DES. Each block is encrypted independently.
The blocks and the key are stored packed in 8-bit bytes, so that the first bit of the key is the most-significant bit of key[0] and the 63rd bit of the key is stored as the least-significant bit of key[7]. The key should have the correct parity.
len is the number of bytes in blocks. It should be a multiple of 8 (so that there is a whole number of blocks to encrypt). len is limited to a maximum of DES_MAXDATA bytes.
Tutankhamun ::
Gundolf hvala, zdej pa dela.
Ta primer sem pa skopirov z neta iz enga fajla, to ni moja koda. Zdej pa je :).
Pa še eno vprašanje imam.
Ne zastopm tist o argumentu key, kakšne paritete, kaj nj bi to pomenl, kako morem nastavt ključ.
Ful slabo piše o tem na netu. Al pa ne vem kje kej iskat. Sm ful svež na linuxu.
Ta primer sem pa skopirov z neta iz enga fajla, to ni moja koda. Zdej pa je :).
Pa še eno vprašanje imam.
Ne zastopm tist o argumentu key, kakšne paritete, kaj nj bi to pomenl, kako morem nastavt ključ.
Ful slabo piše o tem na netu. Al pa ne vem kje kej iskat. Sm ful svež na linuxu.
AMD Phenom QUAD 9950 Black Edition, 8GB
Gundolf ::
Kaj je bil problem, ker si želel kodirat konstanto?
DES ma neki poseben ključ. V bistvu je le 56biten, 8 bitov je pa nek parity, ki pa ne vem kako se izračuna. Mogoče lahko to najdeš kje pod splošnimi informacijami o DESu.
DES ma neki poseben ključ. V bistvu je le 56biten, 8 bitov je pa nek parity, ki pa ne vem kako se izračuna. Mogoče lahko to najdeš kje pod splošnimi informacijami o DESu.
yeti ::
ma kaj se matras s tem desom, to je ze davno passé, 3des pa tudi... zdaj je "in" rijndael (drugo ime je nagravzno, ga ne bom omenjal ), da pe se ne bos zezal z padanjem raje uporabi CTR namesto ECBja (ki itak ne ponuja ne vem kaksne varnosti (ponavljanje blokov)), seveda čisto odvisno kaj rabis... predvsem pa se z kriptografijo sploh ne ukvaraj, ce si nisi pripravljen kaj prebrati, za preproste potrebe je dovolj tudi for(i = 0; string[i] != 0x00; i++) string[i]^=0xaa;, des pa tako ali tako niti buzzword ni vec
Zgodovina sprememb…
- spremenil: yeti ()
Tutankhamun ::
Ja Gundolf, narobe je blo prav to.
yeti
Eh lahk je tut kej druzga kot je des, pač sm v linuxu najdu to in sm hotu sprobat. Če pa veš kje bi lahk kej prebrov o kriptirnih funkcijah, pa povej.
Men so dal nalogo da mau te crypt funkcije k so v linuxu sprobam, pa fuuul nč ne najdem na netu.
yeti
Eh lahk je tut kej druzga kot je des, pač sm v linuxu najdu to in sm hotu sprobat. Če pa veš kje bi lahk kej prebrov o kriptirnih funkcijah, pa povej.
Men so dal nalogo da mau te crypt funkcije k so v linuxu sprobam, pa fuuul nč ne najdem na netu.
AMD Phenom QUAD 9950 Black Edition, 8GB
Zgodovina sprememb…
- spremenil: Tutankhamun ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PHP include(); problemOddelek: Programiranje | 980 (769) | DuleKrtola |
» | [C] Sinhronizacija procesovOddelek: Programiranje | 1140 (1013) | Cvenemir |
» | c grafikaOddelek: Programiranje | 998 (743) | aaaaa93 |
» | C osnovaOddelek: Programiranje | 1544 (1059) | RunoTheDog |
» | [c++] #includeOddelek: Programiranje | 935 (794) | Matako |