亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS 長鏈接與短鏈接之間的轉換

2020-07-26 02:47:02
字體:
來源:轉載
供稿:網友

IOS 長鏈接與短鏈接之間的轉換

首先需要將字符串使用md5加密,添加NSString的md5的類別方法如下

.h文件

#import <CommonCrypto/CommonDigest.h> @interface NSString (md5) -(NSString *) md5HexDigest; @end

.m文件

#import "NSString+md5.h" @implementation NSString (md5) - (NSString *) md5HexDigest{  const char *original_str = [self UTF8String];  unsignedchar result[CC_MD5_DIGEST_LENGTH];  CC_MD5(original_str, strlen(original_str), result);  NSMutableString *hash = [NSMutableStringstring];  for (int i = 0; i < 16; i++)    [hash appendFormat:@"%02X", result[i]];  NSLog(@"lowercaseString = %@",[hash lowercaseString]);  return [hash lowercaseString];} @end

 然后就是轉換算法了,其實與java版本的相同,只是用OC來實現

- (NSString *)shortUrl:(NSString *)url{  NSArray *chars = [[NSArray alloc] initWithObjects:@"a" , @"b" , @"c" , @"d" , @"e" , @"f" , @"g" , @"h" ,           @"i" , @"j" , @"k" , @"l" , @"m" , @"n" , @"o" , @"p" , @"q" , @"r" , @"s" , @"t" ,           @"u" , @"v" , @"w" , @"x" , @"y" , @"z" , @"0" , @"1" , @"2" , @"3" , @"4" , @"5" ,           @"6" , @"7" , @"8" , @"9" , @"A" , @"B" , @"C" , @"D" , @"E" , @"F" , @"G" , @"H" ,           @"I" , @"J" , @"K" , @"L" , @"M" , @"N" , @"O" , @"P" , @"Q" , @"R" , @"S" , @"T" ,           @"U" , @"V" , @"W" , @"X" , @"Y" , @"Z", nil];  NSLog(@"chars = %d", [chars count]);  NSString *key = @"xxxxxx";  NSString *hex = [NSStringstringWithFormat:@"%@",[[key stringByAppendingFormat:@"%@",url] md5HexDigest]];   NSLog(@"hex = %@", hex);  NSMutableArray *resUrl = [[NSMutableArrayalloc] initWithCapacity:4];  for (int i=0; i<4; i++) {    // 把加密字符按照 8 位一組 16 進制與 0x3FFFFFFF 進行位與運算    NSString *sTempSubString = [hex substringWithRange:NSMakeRange(i*8, 8)];        // 這里需要使用 long 型來轉換,因為 Inteper只能處理 31 位 , 首位為符號位 , 如果不用 long ,則會越界    long longOfTemp;    sscanf([sTempSubString cStringUsingEncoding:NSASCIIStringEncoding], "%lx", &longOfTemp);    long lHexLong = 0x3FFFFFFF & longOfTemp;    NSString *outChars = @"";    for (int j=0; j<6; j++) {      // 把得到的值與 0x0000003D 進行位與運算,取得字符數組 chars 索引      long index = 0x0000003D & lHexLong;      // 把取得的字符相加      outChars = [outChars stringByAppendingFormat:@"%@",[chars objectAtIndex:(int)index]];      // 每次循環按位右移 5 位      lHexLong = lHexLong >> 5;    }    // 把字符串存入對應索引的輸出數組    [resUrl insertObject:outChars atIndex:i];  }  return [resUrl objectAtIndex:0];//這里可以返回任意一個元素作為短鏈接(0,1,2,3)} 

提 示:長鏈接轉換短鏈接,原理很簡單,就相當于重命名,只是自己的服務器定義自己的規則,有自己的密鑰(也就是算法中定義的key變量,需要替換成自己用品 定義的key),然后確定使用resUrl中的哪個index的元素為可以識別的短鏈接,如果確定為第0個,那么算法中就要返回第0個。要拿來自己用的 話,只需要改一下key值即可。

必須有服務器定義key,要不點擊轉換成功后的鏈接瀏覽器是無法識別的,還有就是這里返回的字符串僅僅是一 串字符,并不帶有域名什么的,還需要自己確定一套域名規則,比如新浪的地址轉換成功后都是以http://t.cn/打頭的,那么你就需要定義一個類似的 域名,域名具體如何定義這就不細說了!

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久久久久| 国语自产精品视频在线看| 色偷偷亚洲男人天堂| 欧美有码在线观看| 最近2019中文字幕在线高清| 日韩成人在线电影网| 日韩av有码在线| 欧美在线视频在线播放完整版免费观看| 1769国内精品视频在线播放| 国产精品狠色婷| 精品久久久久久久久久ntr影视| 亚洲成av人乱码色午夜| 国产精品久久久久久久久免费看| 成人黄在线观看| 国内免费久久久久久久久久久| 国产美女高潮久久白浆| 久久久久久久爱| 在线亚洲男人天堂| 久99久在线视频| 97人洗澡人人免费公开视频碰碰碰| 欧美怡春院一区二区三区| 欧美黄色片视频| 日韩av片电影专区| 日韩精品视频观看| 亚洲男人天堂古典| 欧美亚洲一级片| 国产精品吴梦梦| 国产精品电影网| 尤物tv国产一区| 亚洲精品第一页| 国产精品wwww| 伊人久久精品视频| 亚洲无亚洲人成网站77777| 欧美激情免费观看| 久久夜色精品亚洲噜噜国产mv| 亚洲精品98久久久久久中文字幕| 日韩日本欧美亚洲| 国产精品国内视频| 伊人青青综合网站| 欧美色xxxx| 久久亚洲一区二区三区四区五区高| 91沈先生在线观看| 国产一区二区日韩精品欧美精品| 欧美在线视频免费播放| 日韩av手机在线| 清纯唯美亚洲综合| 91精品国产高清久久久久久91| 欧美韩国理论所午夜片917电影| 欧美电影在线观看高清| 欧美视频第一页| 日韩电影在线观看免费| 中文综合在线观看| 法国裸体一区二区| 69av成年福利视频| 狠狠色狠狠色综合日日五| 欧美福利视频在线| 91天堂在线视频| 久久97久久97精品免视看| 欧美午夜激情视频| 久久久久久成人精品| 欧美国产日韩在线| 亚洲精品国产精品国自产在线| 2020久久国产精品| 91精品久久久久| 国产精品一久久香蕉国产线看观看| 日韩欧美国产网站| 国产精品无码专区在线观看| 日本乱人伦a精品| 欧美在线观看网址综合| 久久久精品视频在线观看| 久久久噜噜噜久噜久久| 欧美精品在线看| 国产精品精品一区二区三区午夜版| 亚洲欧美国产精品久久久久久久| 欧美精品在线网站| 国产精品美女网站| 日韩网站免费观看高清| 亚洲精品成人av| 亚洲二区中文字幕| 中文字幕亚洲在线| 中文字幕日韩精品在线| 精品福利免费观看| 久久久噜久噜久久综合| 亚州国产精品久久久| 成人性生交大片免费看视频直播| 美女性感视频久久久| 26uuu日韩精品一区二区| 一本色道久久88精品综合| 51ⅴ精品国产91久久久久久| 日韩av电影中文字幕| 欧美日韩精品在线观看| 亚洲v日韩v综合v精品v| 26uuu日韩精品一区二区| 九九精品在线视频| 国产精品极品在线| 亚洲无线码在线一区观看| 欧美高清电影在线看| 日韩av网站电影| 国产精品成人va在线观看| 国产欧亚日韩视频| 亚洲免费电影在线观看| 国产日本欧美一区二区三区在线| 国产日本欧美在线观看| 国产精品久久久久免费a∨大胸| 国产精品成熟老女人| 国产主播欧美精品| 亚洲国产精品久久91精品| 国产一区二区三区三区在线观看| 久久精品99无色码中文字幕| 2019中文字幕在线观看| 欧美日韩激情视频| 超薄丝袜一区二区| 欧美中在线观看| 欧美性猛交xxxx黑人| 久久久99久久精品女同性| 奇门遁甲1982国语版免费观看高清| 久久久免费观看| 久久亚洲精品成人| 国产99视频在线观看| 国产乱人伦真实精品视频| 亚洲国产精品人人爽夜夜爽| 亚洲xxxx视频| 日韩一区二区精品视频| 国产欧美在线观看| 国产日本欧美视频| 国产视频久久久久| 日韩av快播网址| 亚洲国产精彩中文乱码av在线播放| 精品国产乱码久久久久久虫虫漫画| 欧美成人精品在线播放| 欧美日韩亚洲网| 久久亚洲精品一区| 午夜精品一区二区三区在线视频| 亚洲精品美女在线观看播放| 国产精品成久久久久三级| 91亚洲精品一区| 亚洲aaaaaa| 精品欧美激情精品一区| 色视频www在线播放国产成人| 在线视频欧美日韩精品| 91系列在线播放| 超碰精品一区二区三区乱码| 久热精品视频在线观看一区| 91成人天堂久久成人| 欧美日韩在线第一页| 亚洲一区二区三区成人在线视频精品| 国产成人亚洲精品| 久久99热精品这里久久精品| 欧美在线性视频| 茄子视频成人在线| 日本欧美黄网站| 欧美xxxx14xxxxx性爽| 日韩成人在线视频网站| 亚洲天堂日韩电影| 亚洲视频免费一区| 伊人久久免费视频| 夜夜嗨av色综合久久久综合网| 久久福利视频网| 欧美日韩中文字幕综合视频| 成人国产在线激情| 大量国产精品视频| 亚洲国产欧美一区二区三区同亚洲| 欧美性高潮在线| 色偷偷888欧美精品久久久|