2018-10-25 OC 異或校驗(yàn)

僅供參考,比較low

- (void) xorVerify{
      //字符串
      //轉(zhuǎn)data
      //轉(zhuǎn)int運(yùn)算,得到結(jié)果
      NSMutableArray * m_arr = [NSMutableArray array];
    
      [m_arr addObjectsFromArray:@[@"AA",@"55",@"0F",@"02",@"83"]];
      //計(jì)算校驗(yàn)碼
      NSMutableString * str_m = [NSMutableString string];
      int a[5];
      int j = 0;
    //字符串轉(zhuǎn)成16進(jìn)制
      for (NSString * hex in m_arr) {
        
          [str_m appendString:hex];
          NSData * data = [self convertHexStrToData:hex];
        
          int i = 0;
          [data getBytes: &i length: sizeof(i)];
            printf("%x\n", i); //按十六進(jìn)制輸出結(jié)果
            a[j] = i;
          j++;
      }
      int result = 0;
      //異或計(jì)算
      for (int i = 0; i < m_arr.count; i ++) {
          //進(jìn)行16進(jìn)制計(jì)算
          result = result ^ a[i];
      }
      printf("異或結(jié)果 : %x\n", result);

}

// 將十六進(jìn)制字符串轉(zhuǎn)換成NSData
+ (NSData *)convertHexStrToData:(NSString *)str {
    
    if (!str || [str length] == 0) {
        return nil;
    }
    
    NSMutableData *hexData = [[NSMutableData alloc] initWithCapacity:8];
    NSRange range;
    if ([str length] % 2 == 0) {
        range = NSMakeRange(0, 2);
    } else {
        range = NSMakeRange(0, 1);
    }
    for (NSInteger i = range.location; i < [str length]; i += 2) {
        unsigned int anInt;
        NSString *hexCharStr = [str substringWithRange:range];
        NSScanner *scanner = [[NSScanner alloc] initWithString:hexCharStr];
        
        [scanner scanHexInt:&anInt];
        NSData *entity = [[NSData alloc] initWithBytes:&anInt length:1];
        [hexData appendData:entity];
        
        range.location += range.length;
        range.length = 2;
    }
    return hexData;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悠菜,一起剝皮案震驚了整個(gè)濱河市平窘,隨后出現(xiàn)的幾起案子共啃,更是在濱河造成了極大的恐慌太防,老刑警劉巖赚窃,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劲装,死亡現(xiàn)場(chǎng)離奇詭異蠢琳,居然都是意外死亡捻爷,警方通過(guò)查閱死者的電腦和手機(jī)姻僧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門规丽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人撇贺,你說(shuō)我怎么就攤上這事赌莺。” “怎么了松嘶?”我有些...
    開(kāi)封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵艘狭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我翠订,道長(zhǎng)巢音,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任尽超,我火速辦了婚禮官撼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘似谁。我一直安慰自己傲绣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布巩踏。 她就那樣靜靜地躺著斜筐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛀缝。 梳的紋絲不亂的頭發(fā)上顷链,一...
    開(kāi)封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音屈梁,去河邊找鬼嗤练。 笑死榛了,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的煞抬。 我是一名探鬼主播霜大,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼革答!你這毒婦竟也來(lái)了战坤?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤残拐,失蹤者是張志新(化名)和其女友劉穎途茫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體溪食,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡囊卜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了错沃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栅组。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖枢析,靈堂內(nèi)的尸體忽然破棺而出玉掸,到底是詐尸還是另有隱情,我是刑警寧澤醒叁,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布司浪,位于F島的核電站,受9級(jí)特大地震影響辐益,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脱吱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一智政、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箱蝠,春花似錦续捂、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至间校,卻和暖如春矾克,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憔足。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工胁附, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酒繁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓控妻,卻偏偏與公主長(zhǎng)得像州袒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弓候,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350