首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏智能合约

    base62编码

    Base62编码是由10个数字、26个大写英文字母和26个小写英文字母组成,多用于安全领域。本文将介绍对数字进行Base62编码与解码的方法。 直接上代码,如下: /** * base62编码与解码key,由10个数字、26个大写英文字母和26个小写英文字母组成 * @var string $key = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/'; /** * base62 $str - ($a * pow(62, $t)); } return $out; } /** * base62 本站文章除注明转载外,均为本站原创 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动 转载请注明:文章转载自:Marser [https://www.marser.cn] 本文标题:base62编码

    5.8K40发布于 2018-06-25
  • 来自专栏码匠的流水账

    聊聊base62与tinyURL

    序 base64大家肯定是很熟悉了,那base62是什么东东,它常被用来做短url的映射。 CHAR.charAt(rem)); return i / BASE; } 短url的转换 主要思路,维护一个全局自增的id,每来一个长url,将其与一个自增id绑定,然后利用base62 将该自增id转换为base62字符串,即完成转换。

    2.1K20发布于 2018-09-17
  • 来自专栏程序通事

    巧用 Base62 解决字段太短的问题

    ## Base62 其他妙用 除了上面这个应用之外,其实现实也有很多应用也是使用 Base62 解决。 比如,我们现在常用的短网址服务,随便生成一个短网址。 https://tinyurl.com/y8jvg3eb 我们可以看到短网址最后都有一串字符串,那其实就是 Base62。 再比如,B 站现在使用的 BV 号,其实也是 Base62 的应用。 我们对比一下,通常使用纯数字形式 ID,即 Base10与 Base62 。 另外假设 5 位长度 Base62 用完了,只要加上一位,又可以容纳 62 倍数字,几乎很难再用完。 说完优点,我们再来聊聊 Base62 的缺点,不容易记忆。

    1.4K10编辑于 2022-05-10
  • 来自专栏Rust语言学习交流

    【大家的项目】Rust Base62 库学习和分析

    背景 在学习设计 Short URL 时尝试基于 Rust 编写了一个 Base62 库 base62num。后来发现已经有一个 Rust 库 base-62 提供了 Base62 的功能。 但实际上 usize 的大小对于 Base62 的使用场景来说还是不太够用的。 我们来看看 base-62 中的设计思路。

    59631发布于 2020-09-23
  • 来自专栏神光的编程秘籍

    短链服务?用 Nest 自己写一个

    base62 则是去掉了两个特殊字符,一共 62 个字符。 做短链的话,我们用 base62 比较多。 安装用到的包: npm install base62 测试下: const base62 = require("base62/lib/ascii"); const res = base62.encode 比如这样: const base62 = require("base62/lib/ascii"); function generateRandomStr(len) { let str = '' 小结下: 用递增 id + base62 作为压缩码,可以保证唯一,但是容易被人拿到其它短码,不安全。 用 url 做 hash 之后取一部分然后 base62 做为压缩码,有碰撞的可能,不唯一。 核心是压缩码的生成,我们分析了自增 id + base62,这样容易被人拿到其它短链,不安全。hash + base62 会有冲突的可能,所以最终用的是自己生成随机数 + base62 的方案。

    1.1K10编辑于 2023-12-04
  • 来自专栏全栈程序员必看

    仿微博php生成短网址

    php header("Content-Type:text/html;charset=UTF-8"); function base62($x){ $show url_short($url){ $url = crc32($url); $result = sprintf("%u",$url); return base62

    1.4K10编辑于 2022-07-18
  • 来自专栏业余草

    短址(short URL)原理及其实现

    具体实现如下: public ArrayList<Integer> base62(int id) {          ArrayList<Integer> value = new ArrayList<         value.add(remainder);         id = id / 62;     }          return value; } 举例 对于 ID = 138,通过 base62 代码如下: public static int base10(ArrayList<Integer> base62) {     //make sure the size of base62 is 6     

    2.4K30发布于 2019-01-21
  • 来自专栏DotNet NB && CloudNative

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

    需要进行再编码,因此直接使用标准 Base64 编码进行短URL 编码并不合适,所以,我们需要针对 URL 场景对 Base64 编码进行改造,Base64 编码表中的 62,63 进行编码移除,更新为Base62 恢复混淆解密算法设计 将请求收到的短链Key根据打乱后的Base62编码转成十进制数,补0到10位,然后倒转就得到原来的短链Id

    58230编辑于 2023-11-03
  • 来自专栏python3

    Python-wingide

    0123456789ABCDEF' BASE30 = '123456789ABCDEFGHJKLMNPQRTVWXY' BASE36 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' BASE62          decimal to a base that uses A-Z0-9a-z for its digits     >>> baseconvert(257938572394L,BASE10,BASE62 )     'E78Lxik'          ..convert back     >>> baseconvert('E78Lxik',BASE62,BASE10)     '257938572394

    83820发布于 2020-01-13
  • 来自专栏后端知识开放麦

    Java短链接生成服务实战指南

    charAt(randomIndex)); } return sb.toString(); }}3.2 代码解析这个实现方案有几个关键设计点需要理解:字符集选择原理:BASE62 每次生成新链接时,数字递增1,然后转换为Base62编码:@RestController@RequestMapping("/shortUrl2")public class ShortUrl2Controller = Base62Util.base62Encode(num); num++; return base62; }}4.2 Base62编码工具类Base62编码是整个自增方案的核心算法 62; } while (num > 0); StringBuilder sb = new StringBuilder(); // 反转数字顺序,得到正确的Base62 ) { sb.append(base62Digits.get(i)); } return sb.toString(); }}4.3 编码原理说明Base62

    62130编辑于 2025-09-13
  • 从千亿次点击到毫秒级响应:短链系统的设计艺术

    6-8 个字符(平衡易用性和可用空间) 唯一性确保每个长 URL 对应唯一短码(或相反) 不可预测性防止恶意猜测(尤其对敏感链接) 字符集选择应避免易混淆字符(如 0 和 O、1 和 l) 推荐使用 Base62 分布均匀 可能冲突、需解决碰撞 敏感场景、对安全性要求高 UUID 压缩 全球唯一、无需中心节点 长度较长(通常需 12 字符) 分布式系统、无中心 ID 生成器 3.3 工业级实现方案 3.3.1 Base62 编码工具类 import org.apache.commons.lang3.StringUtils; import java.util.Objects; /** * Base62编码工具类 * 基数 */ private static final int BASE = BASE62_CHARACTERS.length(); /** * 将长整型数字转换为Base62 字符串不能为空"); if (base62String.isEmpty()) { throw new IllegalArgumentException("Base62

    9310编辑于 2026-04-14
  • 来自专栏闻道于事

    Java使用AES加密解密

    * * 1.Commons-Codec的 hex/base64 编码 * 2.自定义的base62 编码 * 3.Commons-Lang的xml/html escape * 4 private static final String DEFAULT_URL_ENCODING = "UTF-8"; private static final char[] BASE62 decodeBase64(String input) { return Base64.decodeBase64(input); } /** * Base62 new char[input.length]; for (int i = 0; i < input.length; i++) { chars[i] = BASE62

    5.6K30发布于 2018-08-01
  • 来自专栏快乐阿超

    MP批插优化

    currentQPS / 1000.0); return (int) (baseStep * Math.pow(2, factor)); } 异常熔断策略:在服务中心不可用时切换降级模式 ID压缩存储:采用Base62 编码缩短长度 原始长整型:135790246813579 (15位) Base62编码:2Cst5WJ (7位) 实施效果 在某物流系统订单模块的应用数据: 日均处理订单量从360万提升至2100万

    42400编辑于 2025-03-05
  • 来自专栏FreeBuf

    BaseCrack:一款功能强大的Base编码解码工具

    BaseCrack能够支持目前社区使用最为频繁的Base编码机制,其中包括Base16、Base32、Base36、Base58、Base62、Base64、Base64Url、Base85、Base91 支持的编码方案 Base16 Base32 Base36 Base58 Base62 Base64 Base64Url Base85 Base91 Base92 主要功能 能够对任意模式的多重Base编码数据进行解码

    2.5K20编辑于 2023-04-26
  • 来自专栏JavaEdge

    短链系统设计性能优化-分片键选型及全局自增 ID 策略

    short 若使用随机生成算法 两张表,一张存储 long2short,一张存储short2long 每个映射关系存两份,则能同时支持 long2short short2long 查询 若使用 base62

    45730编辑于 2022-09-14
  • 来自专栏JavaEdge

    短链系统设计性能优化-分片策略优化

    4.5 基于 base62 的分片策略 Hash(long_url)%62作为分片键 并将 hash(long_url)%62直接放到 short url 若原来的 short key 是 AB1234

    57130编辑于 2022-09-14
  • 架构师面试必考:短链接系统设计实战全解析

    与常见的Base64编码相比,Base62最大的优势在于完全避免了特殊字符(如+/=),这些特殊字符在URL中需要额外编码处理,而Base62生成的字符串天然就是URL安全的。 Base62编码算法详解 Base62编码的本质是将十进制数字转换为62进制表示。算法实现相对简单,主要包含两个核心操作:编码和解码。 性能考量 从编码效率来看,Base62与Base64的计算复杂度相当,但Base62避免了特殊字符的处理开销。 可逆性保障 Base62编码必须是完全可逆的,即编码后再解码必须得到原始数值。这要求字符集映射必须是一一对应的,不能有任何歧义。 2025年技术环境下的新考量 随着Web3和分布式系统的发展,Base62编码在短链接系统中的应用也出现了一些新的趋势。比如在去中心化标识符(DID)系统中,Base62因其URL友好性而受到青睐。

    36510编辑于 2025-11-29
  • 来自专栏笔记2022

    Java实用工具类三:封装各种生成唯一性ID算法的工具类.

    . */ public static long randomLong() { return Math.abs(random.nextLong()); } /** * 基于Base62

    80620编辑于 2022-06-17
  • 来自专栏Dotnet9

    WPF版【路遥工具箱】免费开源啦!解决开发痛点,让你事半功倍!

    BASE62编码:对BASE62编码进行编码和解码。 BASE16编码:对BASE16编码进行编码和解码。 文件处理 编码识别:自动识别文件的编码格式。 文件校验:校验文件的完整性和一致性。

    3.6K30编辑于 2023-11-15
  • 来自专栏编程进阶实战

    基于.NET开源、强大易用的短链生成及监控系统

    短URL生成原理 混淆加密算法设计 恢复混淆解密算法设计 将请求收到的短链Key根据打乱后的Base62编码转成十进制数,补0到10位,然后倒转就得到原来的短链Id。

    34311编辑于 2024-07-27
领券