iOS des加密 16进制输出 代码

来源:互联网 发布:spss无法输入数据 编辑:程序博客网 时间:2024/05/02 02:49

+ (NSString *) encryptUseDES:(NSString *)plainText key:(NSString *)key

{


    NSString *ciphertext = nil;

    const char *textBytes = [plainTextUTF8String];

    size_t dataLength = [plainText length];

    //==================

    

    uint8_t *bufferPtr = NULL;

    size_t bufferPtrSize = 0;

    size_t movedBytes = 0;

    

    bufferPtrSize = (dataLength + kCCBlockSizeDES) & ~(kCCBlockSizeDES -1);

    bufferPtr = malloc( bufferPtrSize * sizeof(uint8_t));

    memset((void *)bufferPtr,0x0, bufferPtrSize);


    

    NSString *testString = @"f7afc629";

    NSData *testData = [testStringdataUsingEncoding: NSUTF8StringEncoding];

    Byte *iv = (Byte *)[testDatabytes];

     

 

    CCCryptorStatus cryptStatus =CCCrypt(kCCEncrypt,kCCAlgorithmDES,

                                          kCCOptionPKCS7Padding,

                                          iv, kCCKeySizeDES,

                                          iv,

                                          textBytes, dataLength,

                                          (void *)bufferPtr, bufferPtrSize,

                                          &movedBytes);

    if (cryptStatus == kCCSuccess) {

        

  

        

    ciphertext= [des parseByte2HexString:bufferPtr :(int)movedBytes];

    

    }

    ciphertext=[ciphertext uppercaseString];//字符变大写

    

    

    return ciphertext ;

 

    

}



//十六进制转字符串

+(NSString *) parseByte2HexString:(Byte *) bytes  :(int)len{

    

    

    NSString *hexStr = @"";

    

    if(bytes)

    {

        for(int i=0;i<len;i++)

        {

            NSString *newHexStr = [NSStringstringWithFormat:@"%x",bytes[i]&0xff];///16进制数

            if([newHexStr length]==1)

                hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];

            else

                hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];

        }

    }

    

    

   

    return hexStr;

}





0 0
原创粉丝点击