J'ai utilisé cette fonction pour le cryptage 3des.Dans ios 3des le cryptage contient beaucoup de terminaison nulle. Quand je convertis NSData à NSString, il terminera à la première annulation nulle?
ccStatus = CCCrypt(kCCEncrypt, // CCoperation op
kCCAlgorithm3DES, // CCAlgorithm alg
kCCOptionPKCS7Padding, // kCCOptionPKCS7Padding, //kCCModeECB, // CCOptions
[_keyData bytes], // const void *key
kCCKeySize3DES, // 3DES key size length 24 bit
vinitVec, //iv, // const void *iv,
[dTextIn bytes], // const void *dataIn
[dTextIn length], // size_t dataInLength
bufferPtr, // void *dataOut
bufferPtrSize, // size_t dataOutAvailable
&movedBytes); // size_t *dataOutMoved
NSData *myData = [NSData dataWithBytes:(const void *)bufferPtr length:(NSUInteger)movedBytes];'
Bien que cela fonctionne. mais quand je convertis convertir ce NSData en NSString, parce que le NSString contient beaucoup de terminaison nulle, NSString finissent à la première fin nulle, la variable n'est pas capable de contenir l'ensemble des données. mais je dois envoyer une chaîne cryptée sur le serveur. que puis-je faire pour convertir NSData en NSString. chaîne qui contient tous les moyens de données (si les données contiennent une terminaison nulle, la chaîne ne se terminera pas dans ce cas)?
Veuillez nous aider Merci d'avance.
merci pour la réponse, regard si l'octet chiffré contiennent
char bytes[] = { 'H', 'e', 'l', 'l', 'o', \0, 'W', 'o', 'r', 'l', 'd', \0 };
NSData *data = [NSData dataWithBytes:bytes length:sizeof(bytes)];
NSString *str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"%@", str);
NSString *sendtoserver=[NSString stringwithformat:@"<request>%@</request>",str];
lorsque nous convertissons ces NSData à NSString. il finira le premier \ 0 (terminaison nulle) parce que nous devons envoyer NSString.so chiffré il fait problème. et je ne peux pas envoyer le base64string parce que le côté de serveur ne veut pas that.they ont demandé la chaîne de cryptage.
donc ce que je fais maintenant, s'il vous plaît aider et merci encore pour répondre monsieur,
où est la question (et le point d'interrogation) dans cette question? –