2

DES アルゴリズムを使用して目的 c のデータを暗号化しようとしています。これが私のコードです。このコードから data :<> と暗号化された str: を取得しています。誰が何が間違っているのか教えてください。

    NSString *token = @"hello world";
    const void *vplainText;
    size_t plainTextBufferSize;

    plainTextBufferSize = [token length];
    vplainText = (const void *) [token UTF8String];

    uint8_t *bufferPtr = NULL;
    size_t bufferPtrSize = 0;
    size_t *movedBytes;

    bufferPtrSize = (plainTextBufferSize + kCCBlockSize3DES) & ~(kCCBlockSize3DES - 1);
    bufferPtr = malloc( bufferPtrSize * sizeof(uint8_t));
    memset((void *)bufferPtr, 0x0, bufferPtrSize);

    NSString *key = [[NSString alloc] initWithString:@"12345678"];
    const void *vkey = (const void *) [key UTF8String];
    CCCryptorStatus cryptStatus =CCCrypt(
                            kCCEncrypt,         /* kCCEncrypt, etc. */
                            kCCAlgorithmDES,        /* kCCAlgorithmAES128, etc. */
                           kCCOptionPKCS7Padding | kCCOptionECBMode,    /*kCCOptionPKCS7Padding, etc. */
                            vkey,
                            kCCKeySizeDES,
                            NULL,           /* optional initialization vector */
                            vplainText,     /* optional per op and alg */
                            plainTextBufferSize,
                            (void *)bufferPtr,          /* data RETURNED here */
                            bufferPtrSize,
                            movedBytes);

    NSString *result;

    NSData *myData = [NSData dataWithBytes:(const void *)bufferPtr length:(NSUInteger)movedBytes];
    NSLog(@"my data :%@",myData);


    result = [self base64Encoding:myData];
    NSLog(@"enrypted str: %@",result);
4

1 に答える 1