首先来温习下短网址的相关知识:
1、首先要了解什么是短网址?简单的说明是:把你认为长的难记或放不下的本站网址用本功能生成一个简短网址,使用短网址即可直接访问它。
2、其次它有什么用?你发布的或看到的有价值信息,可能需要发给QQ、MSN、论坛等里的好友或者进行宣传,那么就可以使用生成这个简短的网址。
3、目前大多数的在线缩短网址都提供有API的。在Twitter的等息有字数限制的微博客及其他社交网络中得到了广泛的使用。可以更方便地在电子邮件、社交网络、微博和手机上传播,避免折行或超出字符限制。
实现自己的短网址需要如下步骤:
1.定义您自己的网址映射算法。
2.有一个数据库来存储映射的网址。
3.从数据库的短网址的映射找到原始的URL
例如:引自链接 http://qn-lf.iteye.com/blog/1084516
public static string [] ShortUrl( string url) { //可以自定义生成MD5加密字符传前的混合KEY string key = "Leejor" ; //要使用生成URL的字符 string [] chars = new string []{ "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" }; //对传入网址进行MD5加密 string hex = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(key + url, "md5" ); string [] resUrl = new string [4]; for ( int i = 0; i < 4; i++) { //把加密字符按照8位一组16进制与0x3FFFFFFF进行位与运算 int hexint = 0x3FFFFFFF & Convert.ToInt32( "0x" + hex.Substring(i * 8, 8), 16); string outChars = string .Empty; for ( int j = 0; j < 6; j++) { //把得到的值与0x0000003D进行位与运算,取得字符数组chars索引 int index = 0x0000003D & hexint; // 0x0000003D即61,索引范围为0-61 //把取得的字符相加 outChars += chars[index]; //每次循环按位右移5位 hexint = hexint >> 5; } //把字符串存入对应索引的输出数组 resUrl[i] = outChars; } return resUrl; }然后将生成的短网址和长URL对应关系存入数据库中,当用户访问短网址时,便可以在数据库中查询对应的长URL,数据库表如下:
CREATE TABLE mappedURL ( shortCode char (6) not null , lognURL text not null , PRIMARY KEY shortCodeInd (shortCode), );