zoukankan      html  css  js  c++  java
  • Base64编码

    #pragma mark --------编码--------------

    + (NSString * )encodeBase64:(NSString * )text

    {

        NSData * data = [text dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

        // 转换到base64

        data = [GTMBase64 encodeData:data];

        NSString * base64String = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

        

        return base64String;

    }

    + (NSString * )decodeBase64:(NSString * )text

    {

        

        NSData * data = [text dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

        // 转换到普通

        data = [GTMBase64 decodeData:data];

        NSString * string = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

        

        return string;

    }

    //url编码

    +(NSString *)encodeToPercentEscapeString: (NSString *) input

    {

        NSString *outputStr = (NSString *)

        CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,

                                                (CFStringRef)input,

                                                NULL,

                                                (CFStringRef)@"!*'();:@&=+$,/?%#[]",

                                                kCFStringEncodingUTF8);

        

        if(!outputStr || (NSNull *)outputStr == [NSNull null] || outputStr.length<1)

        {

            return @"";

        }

        return outputStr;

    }

    //md5加密

    +(NSString *) md5String:(NSString *)str

    {

        const char *original_str = [str UTF8String];

        unsigned char result[CC_MD5_DIGEST_LENGTH];

        CC_MD5(original_str, (int)strlen(original_str), result);

        NSMutableString *hash = [NSMutableString string];

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

            [hash appendFormat:@"%02X", result[i]];

        return [hash lowercaseString];

    }

    static inline char hexChar(unsigned char c) {

        return c < 10 ? '0' + c : 'a' + c - 10;

    }

    static inline void hexString(unsigned char *from, char *to, NSUInteger length) {

        for (NSUInteger i = 0; i < length; ++i) {

            unsigned char c = from[i];

            unsigned char cHigh = c >> 4;

            unsigned char cLow = c & 0xf;

            to[2 * i] = hexChar(cHigh);

            to[2 * i + 1] = hexChar(cLow);

        }

        to[2 * length] = '';

    }

    NSString * sha1(const char *string)

    {

        if(!string)

        {

            return nil;

        }

        static const NSUInteger LENGTH = 20;

        unsigned char result[LENGTH];

        CC_SHA1(string, (CC_LONG)strlen(string), result);

        

        char hexResult[2 * LENGTH + 1];

        hexString(result, hexResult, LENGTH);

        

        return [NSString stringWithUTF8String:hexResult];

    }

  • 相关阅读:
    个人网址收集
    使用 TListView 控件(2)
    C# 语法练习(14): 类[六] 事件
    如何在 "万一的 Delphi 博客" 回复自动格式化的着色代码?
    使用 TListView 控件(1)
    C# 语法练习(13): 类[五] 索引器
    使用 TListView 控件(4)
    C# 语法练习(11): 类[三] 构造函数、析构函数、base、this
    C# 语法练习(12): 类[四] 抽象类与抽象成员、密封类与密封成员
    使用 TListView 控件(3)
  • 原文地址:https://www.cnblogs.com/fan-cong/p/5142283.html
Copyright © 2011-2022 走看看