指尖轻触,冗长即化为轻盈——欢迎来到「快缩短网址」suo.run,我们以一行优雅的算法,将浩瀚 URL 凝练为六字符诗。

一、算法之韵:从混沌到秩序
1. 以 MD5 为墨,为原始长链绘出 32 位指纹,宛若银河四段,每段 8 星。
2. 取每段 8 星,与 0x3FFFFFFF 轻吻,仅留 30 位璀璨;Long 型怀抱,无惧符号深渊。
3. 将 30 位星尘再分六簇,每簇 5 位;以 0x3D 为钥,映射至 62 进制字母银河,得六字符短码。
4. 四段星轨,孕育四枚短码,任一枚皆可承载原链之重。
二、Java 之舞:源码如诗
import org.apache.commons.codec.digest.DigestUtils;
<img src="https://suo.run/uploads/20251015/37.png" alt="" class="img-fluid" />
public class ShortUrl {
// 62 进制字符花园
private static final char[] CHARS = (
"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
).toCharArray();
public static String[] shorten(String longUrl) {
String hex = DigestUtils.md5Hex(longUrl); // 32 位 MD5
String[] codes = new String[4];
for (int i = 0; i < 4; i++) {
String slice = hex.substring(i <em> 8, i </em> 8 + 8);
long num = Long.parseLong(slice, 16) & 0x3FFFFFFF;
StringBuilder sb = new StringBuilder();
for (int j = 0; j < 6; j++) {
sb.append(CHARS[(int) (num & 0x3D)]);
num >>= 5;
}
codes[i] = sb.toString();
}
return codes;
}
public static void main(String[] args) {
String longUrl = "http://data.13322.com/basket/team/27_0_1.html";
for (String code : shorten(longUrl)) {
System.out.println("https://suo.run/" + code);
}
}
}
三、跳转之翼:一瞬即达
短码诞生后,仅需在 suo.run 的映射星图中落笔:
短码 → 原链。
当访客携短码而来,系统毫秒间唤回原址,轻盈跳转,无感如风。
告别多头计费的喧嚣,拥抱自持的稳健与纯粹。
此刻,让长链归于静默,让短码替你远行——suo.run,快缩短网址,世界因此更近一步。