objective c - Encrypt/decrypt string with des cbc mode obj-c -
hi guys i'm pretty new in obj-c world , know how can encrypt string in des? tried search not find sample code me thing realized there class commoncrypt want not know how use it
my code
nsstring* key = @"abc43hu0"; nsstring *token = @"hellohello"; const void *vplaintext; size_t plaintextbuffersize; plaintextbuffersize = [token length]; vplaintext = (const void *) [token utf8string]; cccryptorstatus ccstatus; uint8_t *bufferptr = null; size_t bufferptrsize = 0; size_t *movedbytes = null; bufferptrsize = (plaintextbuffersize + kccblocksize3des) & ~(kccblocksize3des - 1); bufferptr = malloc( bufferptrsize * sizeof(uint8_t)); memset((void *)bufferptr, 0x0, bufferptrsize); // memset((void *) iv, 0x0, (size_t) sizeof(iv)); //nsstring *initvec = @"init vec"; const void *vkey = (const void *) [key utf8string]; const void *vinitvec = (const void *) [key utf8string]; ccstatus = cccrypt(kccencrypt, kccalgorithmdes, kccmodecbc, vkey, //"123456789012345678901234", //key kcckeysizedes, vinitvec,// vinitvec, //"init vec", //iv, vplaintext, //"your name", //plaintext, plaintextbuffersize, (void *)bufferptr, bufferptrsize, movedbytes); nsstring *result; nsdata *mydata = [nsdata datawithbytes:(const void *)bufferptr length:(nsuinteger)movedbytes]; result = [mydata base64encoding; crypt_result.text = mydata;
this working code:
nsstring* key = @"abc43hu0"; nsstring *token = @"hellohello"; const void *vplaintext; size_t plaintextbuffersize = [token length]; vplaintext = (const void *) [token utf8string]; cccryptorstatus ccstatus; uint8_t *bufferptr = null; size_t bufferptrsize = 0; size_t movedbytes = 0; bufferptrsize = (plaintextbuffersize + kccblocksizedes) & ~(kccblocksizedes - 1); bufferptr = malloc( bufferptrsize * sizeof(uint8_t)); memset((void *)bufferptr, 0x0, bufferptrsize); byte iv [] = {0x65, 0x110, 0x68, 0x26, 0x69, 0x178, 0x200, 0x219}; const void *vkey = (const void *) [key utf8string]; ccstatus = cccrypt(kccencrypt, kccalgorithmdes, kccoptionpkcs7padding, vkey, kcckeysizedes, iv, vplaintext, plaintextbuffersize, (void *)bufferptr, bufferptrsize, &movedbytes); nsdata *mydata = [nsdata datawithbytes:(const void *)bufferptr length:(nsuinteger)movedbytes]; nsstring* result = [base64 base64encodedata:mydata];//my own method encoding base64
Comments
Post a Comment