主要实现思路:

1.使用工具类,根据地址,生成对应的短链接
2.将对应的地址和短链接记录在数据库中
3.当手机端复制短链接到应用中时,查询映射表跳转地址即可
package com.ruoyi.receipt.utils;import java.security.MessageDigest;
import java.util.Random;public class ShortUrlUtils {public static void main(String[] args) {String sLongUrl = "http://www.51bi.com/bbs/_t_278433840/"; // 原始链接System.out.println("长链接:"+sLongUrl);String[] aResult = shortUrl(sLongUrl);//将产生4组6位字符串// 打印出结果for (int i = 0; i < aResult.length; i++) {System.out.println("[" + i + "]:" + aResult[i]);}Random random=new Random();int j=random.nextInt(4);//产成4以内随机数System.out.println("短链接:"+aResult[j]);//随机取一个作为短链}public static String[] shortUrl(String url) {// 可以自定义生成 MD5 加密字符传前的混合 KEYString key = "test";// 要使用生成 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 = md5ByHex(key + url);String[] resUrl = new String[4];for (int i = 0; i < 4; i++) {// 把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算String sTempSubString = hex.substring(i * 8, i * 8 + 8);// 这里需要使用 long 型来转换,因为 Inteper .parseInt() 只能处理 31 位 , 首位为符号位 , 如果不用long ,则会越界long lHexLong = 0x3FFFFFFF & Long.parseLong(sTempSubString, 16);String outChars = "";for (int j = 0; j < 6; j++) {// 把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引long index = 0x0000003D & lHexLong;// 把取得的字符相加outChars += chars[(int) index];// 每次循环按位右移 5 位lHexLong = lHexLong >> 5;}// 把字符串存入对应索引的输出数组resUrl[i] = outChars;}return resUrl;}/*** MD5加密(32位大写)* @param src* @return*/public static String md5ByHex(String src) {try {MessageDigest md = MessageDigest.getInstance("MD5");byte[] b = src.getBytes();md.reset();md.update(b);byte[] hash = md.digest();String hs = "";String stmp = "";for (int i = 0; i < hash.length; i++) {stmp = Integer.toHexString(hash[i] & 0xFF);if (stmp.length() == 1) {hs = hs + "0" + stmp;} else {hs = hs + stmp;}}return hs.toUpperCase();} catch (Exception e) {return "";}}}

电商-分享时短链接生成方案相关推荐

  1. java 短链跳转原理_给你代码:短链接生成原理

    短链接,顾名思义就是在形式上比较短的链接.最早存在于微博(如新浪微博,t.cn,url.cn)分享网址中.比如这样的:t.cn/Aidjddvo 短链接的好处 内容需要(比如短信,微博中链接字数的限制 ...

  2. t.cn短链接生成 - 新浪短网址生成器压缩网址详细教程

    t.cn短链接是新浪官方的短网址工具,提供在线将长链接缩短为最短形式的t.cn链接服务,生成的短网址跳转速度和访问兼容性没有任何影响,生成好的短网址永久有效,还可以通过对接调用api接口和批量生成的方 ...

  3. 独立开发变现周刊(第66期): 如何把一个短链接生成工具变成一个可持续盈利的产品?...

    分享独立开发.产品变现相关内容,每周五发布. 目录 1.Padloc: 一个开源的,端到端加密的产品. 2.Spinach: 高效完成你的每日站立会议 3.Excalidraw: 虚拟白板,用于手绘图 ...

  4. Java短链接生成解决方案

    Java短链接生成解决方案 短链接生成的思路 原理:各大网站短链接的生成思路就是建立一个数据库,里面有长链接和对应短链接的映射,当输入短链接地址时,就去数据库查询对应的长链接,找到后,跳转到长链接 我 ...

  5. 11-Flutter移动电商实战-首页_屏幕适配方案和制作

    11-Flutter移动电商实战-首页_屏幕适配方案和制作 1.flutter_ScreenUtil插件简介 flutter_ScreenUtil屏幕适配方案,让你的UI在不同尺寸的屏幕上都能显示合理 ...

  6. 黑色简洁的PHP短网址短链接生成源码 可在后台添加广告

    黑色简洁的PHP短网址短链接生成源码 可在后台添加广告 前端: 简洁.优雅.反应灵敏的设计 创建URL.创建自定义URL.密码保护的链接.链接统计.暗色主题.小书签.复制和共享链接 后端: 删除网址. ...

  7. 快速理解简单的短链接生成原理

    快速理解简单的短链接生成原理 原理 计算长链接整体为一个十进制数,将其映射成一个62进制数.这个62进制由26个小写字母,26个大写字母和10个数字表示. 假设有long-url这么一个长网址,其10 ...

  8. 短链接生成平台哪个好用

    短链接生成平台哪个好用? 短网址,又称短链接,短链接对于推广来说更容易传播和识别,如果不想辛辛苦苦发的链接,最后全部变成红色.失效,赶紧短链接管理用起来! 如何选择一个靠谱的短链接管理服务平台,亲测各 ...

  9. 短链接生成-短网址生成-短网址生成接口-短网址URL生成-短链接-短链接URL生成接口

    短链接生成-短网址生成-短网址生成接口-短网址URL生成-短链接-短链接URL生成接口[最新版]_数据API_数据应用-云市场-阿里云 如何生成短网址,短链接? 这为我们短信节约了巨额的成本 publ ...

最新文章

  1. asp.net 操作excel的实现代码
  2. C: Answers to “The C programming language, Edition 2”
  3. 计算机设计文献参考,优秀计算机设计论文参考文献 计算机设计论文参考文献数量是多少...
  4. 【安卓开发 】Android初级开发(五)自定义View
  5. mySQL字符串字段区别_MySQL类型之(字符串列类型区分、数据类型区分)
  6. 求数组中数的最大值、最小值(C语言)
  7. 细胞增殖曲线_【音频】第6章 细胞的生命历程 第1节 细胞的增殖
  8. 广义表head tail 运算_双链表实现LRU缓存淘汰策略
  9. unity3d烘焙教程 持续更新中【2020】
  10. 今夜,只我一人听雨声
  11. 把MSGF变成SPLF 把SPLF变成MEMBER(源文件)-转载
  12. 纯swift开发,弹幕,演唱会广告牌
  13. AM335X-IO输入总是读不到输入电平——8
  14. dataworks/odps上传资源,注册函数,下载资源
  15. 企业微信和小程序绑定,获取unionid
  16. 杭电和深大计算机专业哪个好,杭州电子科技大学 还是 深圳大学?
  17. 这6款软件,让你的工作效率提升90%!
  18. 如何安装使用Oracle10g
  19. 【MySQL】事务管理
  20. nbu15_NBU常用的命令

热门文章

  1. spynet(一):光流估计代码介绍
  2. Spark GraphX图计算入门
  3. 上传图片计算机没有桌面,为什么我的电脑不能上传任何图片和文件?各位 – 手机爱问...
  4. 威尔逊置信区间 php,Evvail | 威尔逊置信区间(Wilson confidence intervals )计算 | Omics - Hunter...
  5. mac系统清理软件MacClean支持文件类型分享
  6. Cache之ECP磁盘撑满处理
  7. 虎书学习笔记1:图形学基础数学(集合、映射、逆映、对数、三角学)
  8. 微信一笔画游戏 的 路径算法
  9. TP TN FP FN IOU
  10. 国外网站下载提速方式