如何用終端命令&iOS代碼base64編解碼?

『導(dǎo)語』

在iOS開發(fā)中base64如何用xcode進(jìn)行編解碼秸抚?如何用終端進(jìn)行編解碼速和?我將用以下例子說明:(xcode代碼和終端命令下載)

  • Base64簡單說明
分析 描述
描述 Base64可以成為密碼學(xué)的基石,非常重要
特點(diǎn) 可以將任意的二進(jìn)制數(shù)據(jù)進(jìn)行Base64編碼
結(jié)果 所有的數(shù)據(jù)都能被編碼為并只用65個字符就能表示的文本文件剥汤。
65字符 A~Z a~z 0~9 + / =對文件進(jìn)行base64編碼后文件數(shù)據(jù)的變化:編碼后的數(shù)據(jù)~=編碼前數(shù)據(jù)的4/3颠放,會大1/3左右。
  • 已知:

**編碼 **:A ——> QQ==
解碼 : QQ== ——>A

  • 終端命令
  • 編碼:輸入echo -nA |base64吭敢,再按回車鍵Enter
  • 解碼:輸入echo -nQQ== |base64 -D碰凶,再按回車鍵Enter
    圖.base64字符編解碼

    代碼base64編解碼終端.gif
  • 代碼
  • 創(chuàng)建編碼base64EncodeString:方法 ;
  • 創(chuàng)建解碼base64DecodeString:方法;
//對一個str進(jìn)行base64編碼
-(NSString *)base64EncodeString:(NSString *)string
{
    //1 str->data  字符串轉(zhuǎn)為二進(jìn)制數(shù)據(jù)
    NSData *data = [string dataUsingEncoding:kCFStringEncodingUTF8];
    //2 對二進(jìn)制數(shù)據(jù)進(jìn)行base64編碼,完成后返回字符串
    return [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
}
//解碼
-(NSString *)base64DecodeString:(NSString *) string
{
    //1 轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)(注意:該字符串是base64編碼后的字符)
    NSData *data = [[NSData alloc] initWithBase64EncodedString:string options:NSDataBase64DecodingIgnoreUnknownCharacters];
    //2 把二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為字符串
    return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
  • 點(diǎn)擊時調(diào)用編解碼方法
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{

    //str編碼base64  A  (QQ== 其中==表示占位的0)
  NSString *strBase64 =   [self base64EncodeString:@"A"];
    NSLog(@"strBase64 = %@",strBase64);
    
    /*
     2017-03-21 17:32:42.177 06-了解-加密相關(guān)[1410:198041] strBase64 = QQ==
     */
    
    NSString *strUncodeBase64 = [self base64DecodeString:@"QQ=="];
    NSLog(@"解碼 str = %@ ",strUncodeBase64);
    /*
     2017-03-22 12:09:27.527 06-了解-加密相關(guān)[714:38086] 解碼 str = A
     */
}
代碼base64編解碼.gif
  • 補(bǔ)充:Base64編碼原理
    • 1)將所有字符轉(zhuǎn)化為ASCII碼
    • 2)將ASCII碼轉(zhuǎn)化為8位二進(jìn)制鹿驼;
    • 3)將二進(jìn)制3個歸成一組(不足3個在后邊補(bǔ)0)共24位欲低,再拆分成4組,每組6位畜晰;(8位6位)
    • 4)統(tǒng)一在6位二進(jìn)制前補(bǔ)0湊足8位砾莱;
    • 5)將補(bǔ)0后的二進(jìn)制轉(zhuǎn)為十進(jìn)制
    • 6)從Base64編碼表獲取十進(jìn)制對應(yīng)的Base64編碼凄鼻;
      圖.A和BC的編碼結(jié)果
  • 補(bǔ)充:處理過程說明:
    • a.轉(zhuǎn)換的時候腊瑟,將三個byte的數(shù)據(jù),先后放入一個24bit的緩沖區(qū)中块蚌,先來的byte占高位闰非。
    • b.數(shù)據(jù)不足3byte的話,于緩沖區(qū)中剩下的bit用0補(bǔ)足峭范。然后财松,每次取出6個bit,按照其值選擇查表選擇對應(yīng)的字符作為編碼后的輸出纱控。
    • c.不斷進(jìn)行辆毡,直到全部輸入數(shù)據(jù)轉(zhuǎn)換完成政敢。
    • d.如果最后剩下兩個輸入數(shù)據(jù),在編碼結(jié)果后加1個“=”胚迫;
    • e.如果最后剩下一個輸入數(shù)據(jù),編碼結(jié)果后加2個“=”唾那;
    • f.如果沒有剩下任何數(shù)據(jù)访锻,就什么都不要加,這樣才可以保證資料還原的正確性闹获。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末期犬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子避诽,更是在濱河造成了極大的恐慌龟虎,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沙庐,死亡現(xiàn)場離奇詭異鲤妥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拱雏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門棉安,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铸抑,你說我怎么就攤上這事贡耽。” “怎么了鹊汛?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵蒲赂,是天一觀的道長。 經(jīng)常有香客問我刁憋,道長滥嘴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任职祷,我火速辦了婚禮氏涩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘有梆。我一直安慰自己是尖,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布泥耀。 她就那樣靜靜地躺著饺汹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痰催。 梳的紋絲不亂的頭發(fā)上兜辞,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天迎瞧,我揣著相機(jī)與錄音,去河邊找鬼逸吵。 笑死凶硅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扫皱。 我是一名探鬼主播足绅,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼韩脑!你這毒婦竟也來了氢妈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤段多,失蹤者是張志新(化名)和其女友劉穎首量,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體进苍,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡加缘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了琅捏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片生百。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柄延,靈堂內(nèi)的尸體忽然破棺而出蚀浆,到底是詐尸還是另有隱情,我是刑警寧澤搜吧,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布市俊,位于F島的核電站,受9級特大地震影響滤奈,放射性物質(zhì)發(fā)生泄漏摆昧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一蜒程、第九天 我趴在偏房一處隱蔽的房頂上張望绅你。 院中可真熱鬧,春花似錦昭躺、人聲如沸忌锯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偶垮。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間似舵,已是汗流浹背脚猾。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留砚哗,地道東北人龙助。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像蛛芥,于是被迫代替她去往敵國和親泌参。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

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

  • /**ios常見的幾種加密方法: 普通的加密方法是講密碼進(jìn)行加密后保存到用戶偏好設(shè)置( [NSUserDefaul...
    彬至睢陽閱讀 2,927評論 0 7
  • 常見的加密算法 MD5 \ SHA \ DES \ 3DES \ RC2和RC4 \ RSA \ IDEA \ D...
    小小啄閱讀 3,118評論 0 9
  • MD5加密 簡介 它是用哈希算法加密的盖溺。哈希算法是一種摘要算法(是一種能產(chǎn)生特殊輸出格式的算法漓糙,這種算法的特點(diǎn)是:...
    YANG1220閱讀 3,947評論 0 9
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,139評論 30 470
  • 這也可以說是"自證預(yù)言"。很多人相信算卦烘嘱,然后真就照著走了昆禽,然后慨嘆,也就是命坝ァ醉鳖!如果一切都是天注定,命運(yùn)就是完全...
    洛尓閱讀 137評論 0 0