Результат равной цели C для java Cipher.getInstance("DESede/ECB/NoPadding")

Java-код сделан для генерации результата 3DES, код сегмента, как показано ниже:

Cipher cipher = Cipher.getInstance("DESede/ECB/NoPadding"); 
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] result = cipher.doFinal(data);

Теперь мне нужно реализовать тот же результат в target-C, ниже моя попытка, но результат даже не близок.

+(NSString *) try3DES:(NSString *)plainText key:(NSString *)key
{
    NSString *ciphertext = nil;
    NSData *textData = [plainText dataUsingEncoding:NSUTF8StringEncoding];
    NSUInteger dataLength = [textData length];
    unsigned char buffer[1024];
    memset(buffer, 0, sizeof(char));
    size_t numBytesEncrypted = 0;
    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
                                      kCCAlgorithmDES,
                                      kCCOptionPKCS7Padding,
                                      [key UTF8String],
                                      kCCKeySizeDES,
                                      nil,
                                      [textData bytes],
                                      dataLength,
                                      buffer,
                                      1024,
                                      &numBytesEncrypted);
    if (cryptStatus == kCCSuccess) {
        NSData *data = [NSData dataWithBytes:buffer length:(NSUInteger)numBytesEncrypted];

        ciphertext = [self convertDataToHexStr:data];
    }
    return ciphertext;
}

Кто-нибудь может помочь?

0 ответов

Другие вопросы по тегам