ios 字符加密问题 字符串加密gyb字符返回空

本文探讨了iOS开发中使用DES加密算法时遇到的一个奇怪问题:特定字符串'gyb'加密时返回空值的现象。通过详细展示代码实现过程,寻求解决之道。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人是ios菜鸟,最近在对字符加密的时候,发现一个很奇怪的问题,
就是其他字符或者字符串返回都是正常,唯独只有gyb返回空,代码如下
+(NSString *)DESSecret:(NSString *)plainText
{
    NSString *ciphertext = nil;
    NSData *textData = [plainText dataUsingEncoding:NSUTF8StringEncoding];
    NSUInteger dataLength = [textData length];
    unsigned char buffer[dataLength];
    memset(buffer, 0, sizeof(char));
    size_t numBytesEncrypted = 0;
    NSRange range;
    range.location=0;
    range.length=dataLength;
    NSString *testString =key;
    NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding];
    Byte *testByte = (Byte *)[testData bytes];
    CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmDES,
                                          kCCOptionPKCS7Padding,
                                          [key UTF8String], kCCKeySizeDES,
                                          testByte,
                                          [textData bytes], dataLength,
                                          buffer, 1024,
                                          &numBytesEncrypted);
    if (cryptStatus == kCCSuccess) {        
        ciphertext=[DESHandleString parseByte2HexString:buffer];
    }
    return ciphertext;
}
+(NSString *) parseByte2HexString:(Byte *) bytes
{
    NSMutableString *hexStr = [[NSMutableString alloc]init];
    int i = 0;
    if(bytes)
    {
        while (bytes[i] != '\0')
        {
            NSString *hexByte = [NSString stringWithFormat:@"%x",bytes[i] & 0xff];///16进制数
            if([hexByte length]==1)
                [hexStr appendFormat:@"0%@", hexByte];
            else
                [hexStr appendFormat:@"%@", hexByte];
            
            i++;
        }
    }
    NSLog(@"bytes 的16进制数为:%@",hexStr);
    return hexStr;
}
求大神指点啊 ,我实在搞不懂啊 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值