前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐一个基于 .NET 的开源短链接生成项目

推荐一个基于 .NET 的开源短链接生成项目

作者头像
郑子铭
发布2023-11-03 10:49:42
3680
发布2023-11-03 10:49:42
举报
文章被收录于专栏:DotNet NB && CloudNative

短链接生成

这是一个基于.NET开源的短链生成及监控系统,它包含了在线生成短链、短链跳转长链、支持短链访问次数以及Web监控页面,可以帮助我们更容易地生成短链、监控短链!

功能介绍

  • • 基于.NET 6开发的后端及Web管理界面
  • • 支持自定义短链长度
  • • 支持在线短链生成及跳转长链
  • • 支持实时统计短链访问次数
  • • 支持多种持久化方式:MySQL/PostgreSQL/SqlServer(2012及以上)
  • • 傻瓜式配置,开箱即用

截图预览

登录页

首页Dashboard

列表页

短URL生成原理

标准Base64编码表如下:

其中“+”和“/”在 URL 中会被编码为“%2B”以及“%2F”,需要进行再编码,因此直接使用标准 Base64 编码进行短URL 编码并不合适,所以,我们需要针对 URL 场景对 Base64 编码进行改造,Base64 编码表中的 62,63 进行编码移除,更新为Base62编码。

混淆加密算法设计

  1. 1. 将标准编码随机打乱 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

举例:打乱成:s9LFkgy5RovixI1aOf8UhdY3r4DMplQZJXPqebE0WSjBn7wVzmN2Gc6THCAKhaut

  1. 1. 6位长度标准编码与打乱后编码的对应关系

可以看出,虽然打乱了,但还顺序性还是很明显

3.将前面补0再倒转,由于6位长度最大11位,为了避免倒转后超过该数值,因此补到10位.

恢复混淆解密算法设计

将请求收到的短链Key根据打乱后的Base62编码转成十进制数,补0到10位,然后倒转就得到原来的短链Id

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 混淆加密算法设计
  • 恢复混淆解密算法设计
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档