iOS 十六進制字符串轉(zhuǎn)為byte數(shù)組

由于公司需求久窟,需要把獲取到的UUID十六進制的字符串,轉(zhuǎn)為byte數(shù)組著蛙,然后在進行base64加密恼布。

一、UUID的生成

UUID最好通過SSKeyChain存到鑰匙串中

//獲取uuid
+(NSString *)getDeviceId{
    NSString * currentDeviceUUIDStr = [SSKeyChain passwordForService:UUID account:@"installationId"];
    if (currentDeviceUUIDStr == nil || [currentDeviceUUIDStr isEqualToString:@""]){
        NSUUID * currentDeviceUUID  = [UIDevice currentDevice].identifierForVendor;
        currentDeviceUUIDStr = currentDeviceUUID.UUIDString;
        currentDeviceUUIDStr = [currentDeviceUUIDStr stringByReplacingOccurrencesOfString:@"-" withString:@""];
        currentDeviceUUIDStr = [currentDeviceUUIDStr lowercaseString];
        [SSKeyChain setPassword: [WebHelper stringToByte:currentDeviceUUIDStr] forService:UUID account:@"installationId"];
    }
    NSLog(@"installationId+++++%@",currentDeviceUUIDStr);
    return currentDeviceUUIDStr;
}
二秕岛、十六進制的字符串轉(zhuǎn)為byte數(shù)組
//從字符串中取字節(jié)數(shù)組,然后再用base64進行轉(zhuǎn)換
+(NSString*)stringToByte:(NSString*)string {
    NSString *hexString=[[string uppercaseString] stringByReplacingOccurrencesOfString:@" " withString:@""];
    if ([hexString length]%2!=0) {
        return nil;
    }
    Byte bytes[16] = {0};
    int j=0;
    for(int i=0;i<[hexString length];i++) {
        int int_ch;
        unichar hex_char1 = [hexString characterAtIndex:i]; ////兩位16進制數(shù)中的第一位(高位*16)
        int int_ch1;
        if(hex_char1 >= '0' && hex_char1 <='9')
            int_ch1 = (hex_char1-48)*16;   //// 0 的Ascll - 48
        else if(hex_char1 >= 'A' && hex_char1 <='F')
            int_ch1 = (hex_char1-55)*16; //// A 的Ascll - 65
        else
            return nil;
        i++;

        unichar hex_char2 = [hexString characterAtIndex:i]; ///兩位16進制數(shù)中的第二位(低位)
        int int_ch2;
        if(hex_char2 >= '0' && hex_char2 <='9')
            int_ch2 = (hex_char2-48); //// 0 的Ascll - 48
        else if(hex_char2 >= 'A' && hex_char2 <='F')
            int_ch2 = hex_char2-55; //// A 的Ascll - 65
        else
            return nil;

        int_ch = int_ch1+int_ch2;  ///將轉(zhuǎn)化后的數(shù)放入Byte數(shù)組里
        NSLog(@"int_ch=%d",int_ch);
        bytes[j] = int_ch;  ///將轉(zhuǎn)化后的數(shù)放入Byte數(shù)組里
        j++;

    }
//進行base64加密
    NSData *byteData = [[NSData alloc] initWithBytes:bytes length:16];

    NSData *base64Data = [byteData base64EncodedDataWithOptions:0];

    NSString *baseString = [[NSString alloc]initWithData:base64Data encoding:NSUTF8StringEncoding];

    NSLog(@"++++++++++++base64+++++%@",baseString);
    //base64去除多余的字符

    return [WebHelper takeOutBaseCode:baseString];
}
三碌燕、對獲取到base64字符串做處理
//base64編碼中的+改為-,/改為_,==去掉

+ (NSString *)takeOutBaseCode:(NSString *)baseString {
    // + 號改為-號
    NSString *firstString = [baseString stringByReplacingOccurrencesOfString:@"+" withString:@"-"];
    //  /改為下劃線
    NSString *secondString = [firstString stringByReplacingOccurrencesOfString:@"/" withString:@"_"];
    //去掉==
    NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"="];
    NSString *trimmedString = [secondString stringByTrimmingCharactersInSet:set];

    NSLog(@"+++移除特殊字符之后%@",trimmedString);
    return trimmedString;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末继薛,一起剝皮案震驚了整個濱河市修壕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌遏考,老刑警劉巖慈鸠,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诈皿,居然都是意外死亡林束,警方通過查閱死者的電腦和手機像棘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門稽亏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缕题,你說我怎么就攤上這事截歉。” “怎么了烟零?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵瘪松,是天一觀的道長。 經(jīng)常有香客問我锨阿,道長宵睦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任墅诡,我火速辦了婚禮壳嚎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己烟馅,他們只是感情好说庭,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著郑趁,像睡著了一般刊驴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寡润,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天捆憎,我揣著相機與錄音,去河邊找鬼悦穿。 笑死攻礼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的栗柒。 我是一名探鬼主播礁扮,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瞬沦!你這毒婦竟也來了太伊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逛钻,失蹤者是張志新(化名)和其女友劉穎僚焦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體曙痘,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡芳悲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了边坤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片名扛。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖茧痒,靈堂內(nèi)的尸體忽然破棺而出肮韧,到底是詐尸還是另有隱情,我是刑警寧澤旺订,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布弄企,位于F島的核電站,受9級特大地震影響区拳,放射性物質(zhì)發(fā)生泄漏拘领。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一樱调、第九天 我趴在偏房一處隱蔽的房頂上張望约素。 院中可真熱鬧洽瞬,春花似錦、人聲如沸业汰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽样漆。三九已至为障,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間放祟,已是汗流浹背鳍怨。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跪妥,地道東北人鞋喇。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像眉撵,于是被迫代替她去往敵國和親侦香。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容