uniapp 动态获取接口域名

背景接口域名没有写死,而是动态获取。具体实现就是 通过读取一个静态json文件,来设置真实的接口域名。因为公司之前所有的项目都是这么处理的,好处是 原域名有可能被封,这样可以直接后台操作修改该配置文件即可;不然的话,h5 项目可能还好说,app 的话必须重新发...

Java中zip的压缩和解压缩的实现代码

在Java中可以使用ZipOutputStream和ZipInputStream来实现zip的压缩和解压缩操作,另外使用FileSystem也可以用来实现zip的解压缩,下面将介绍这几种方式,直接上代码。zip压缩待压缩文件目录结构:每个zip文件项都要对应一...

短网址(short URL)系统的原理及其实现

短址的长度一般设为 6 位,而每一位是由 [a - z, A - Z, 0 - 9] 总共 62 个字母组成的,所以 6 位的话,总共会有 62^6 ~= 568亿种组合,基本上够用了。

哈哈,这里附上一个进制转换工具 http://tool.lu/hexconvert/ 上图的数据就是用这个工具生成的。

具体的算法实现,自行谷歌。

算法二

  1. 将长网址 md5 生成 32 位签名串,分为 4 段, 每段 8 个字节

  2. 对这四段循环处理, 取 8 个字节, 将他看成 16 进制串与 0x3fffffff(30位1) 与操作, 即超过 30 位的忽略处理

  3. 这 30 位分成 6 段, 每 5 位的数字作为字母表的索引取得特定字符, 依次进行获得 6 位字符串

  4. 总的 md5 串可以获得 4 个 6 位串,取里面的任意一个就可作为这个长 url 的短 url 地址

这种算法,虽然会生成4个,但是仍然存在重复几率

两种算法对比

第一种算法的好处就是简单好理解,永不重复。但是短码的长度不固定,随着 id 变大从一位长度开始递增。如果非要让短码长度固定也可以就是让 id 从指定的数字开始递增就可以了。百度短网址用的这种算法。上文说的开源短网址项目 YOURLS 也是采用了这种算法。

背景提供一个短址服务你有没有发现,我们的任务中出现长 URL 就会比较麻烦?如果有一个短址生成器就好了。虽然市面上有很多,但是我们可以重复发明一个轮子,利用这个机会尝试一下简单的 Web 全栈开发。任务做一个短链接生成器,可以将一个长链接缩短成一个短链接。预览...

简化的鸿蒙WiFi接口,仅需几行代码,简单易用!

使用鸿蒙原始WiFI API接口进行编程,整个过程稍显繁琐,为此我们对鸿蒙原始WiFi API接口做了一层封装,形成了一套更简单易用的接口。简化后的API接口 STA模式// 连接WiFi热点,并启动DHCP客户端;成功会返回一个netId,失败返回 -1 i...

编写 if 时不带 else,你的代码会更好

 设计更好的软件,替换If-Else的5种方法。入门到高级示例让我直接说这句话:If-Else通常是一个糟糕的选择。它导致设计复杂,代码可读性差,并且可能导致重构困难。但是,If-Else已成为事实上的代码分支解决方案,这确实是有道理的。这是向所有有...

eclipse使用教程

PS:最近很多同学问我eclipse不知道怎么用,那我们出一个eclipse的教程Start:如果你们觉得eclipse的windows英文版看的很累,我放一个汉化的教程吧?https://www.cnblogs.com/husiyu/p/12404908.h...

帝国cms7.2点击加载更多源代码,手机ajax加载更多代码

很多朋友还是反映不知道怎么在帝国cms下加载更多代码的使用,在当下制作手机站热门的情况下没有这个代码的确是对访问体验不太好,今天分享给大家源代码:首先看体验站,其实很简单,关键是怎么连接数据库。在前边的这边文章中有详细的介绍http://www.wenzhai...