AES Arabic Character Encryption - Target C

I have an encryption function that receives data and key, with an internal iv and returns an encrypted string. I can encrypt every line containing only English characters, but not about Arabic. This is my function. Please help me find the problem. thanks

- (NSString *) Encrypt: (NSString *) data second: (NSString *) key
    {
        size_t outLength;
        NSMutableData * cipherData = [NSMutableData dataWithLength: data.length + kCCBlockSizeAES128];
        Byte byte [] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,}; // It`s not valid. The main iv is secret
        NSData * datakey = [NSData dataWithBytes: key.UTF8String length: key.length];
        NSData * datadata = [NSData dataWithBytes: data.UTF8String length: data.length];
        CCCryptorStatus result = CCCrypt (kCCEncrypt
                                        , kCCAlgorithmAES128
                                        , kCCOptionPKCS7Padding
                                        , datakey.bytes
                                        , [datakey length]
                                        byte
                                        , datadata.bytes
                                        , [datadata length]
                                        , cipherData.mutableBytes
                                        , cipherData.length
                                        , & outLength);

    if (result == kCCSuccess) {
        cipherData.length = outLength;
    }
    else {

    }
    NSData *encryptedData=cipherData;
    NSString *str=[encryptedData base64EncodedStringWithOptions: NSDataBase64Encoding64CharacterLineLength];
    return str;
}

+4
source share
1 answer

, cipherData . datadata, (, ) data.length.

utf-8 , , , emoji .., .

:

NSMutableData * cipherData = [NSMutableData dataWithLength:data.length + kCCBlockSizeAES128];
NSData *datadata = [NSData dataWithBytes:data.UTF8String length:data.length];

:

NSData *datadata = [data dataUsingEncoding:NSUTF8StringEncoding];
NSMutableData * cipherData = [NSMutableData dataWithLength: datadata.length + kCCBlockSizeAES128];  

, data , . datatex, `` datadata -> data` . .

+2

Source: https://habr.com/ru/post/1689199/


All Articles