部分功能的实现和算法
目录
1.雪花算法
2.MD5加密
3.小眼睛显示密码
4.发送验证码
5.倒计时
1.雪花算法
SnowFlake 中文意思为雪花,故称为雪花算法。最早是 Twitter 公司在其内部用于分布式环境下生成唯一 ID。在2014年开源 scala 语言版本
雪花算法的原理就是生成一个的 64 位比特位的 long 类型的唯一 id。
最高 1 位固定值 0,因为生成的 id 是正整数,如果是 1 就是负数了。
接下来 41 位存储毫秒级时间戳,2^41/(1000*60*60*24*365)=69,大概可以使用 69 年。
再接下 10 位存储机器码,包括 5 位 datacenterId 和 5 位 workerId。最多可以部署 2^10=1024 台机器。
最后 12 位存储序列号。同一毫秒时间戳时,通过这个递增的序列号来区分。即对于同一台机器而言,同一毫秒时间戳下,可以生成 2^12=4096 个不重复 id。
public class SnowflakeIdGenerator { private final long twepoch = 1626708222000L; // 设置起始时间戳,这里使用当前时间的毫秒值作为起始时间 private final long workerIdBits = 10L; private final long sequenceBits = 12L; private final long maxWorkerId = -1L ^ (-1L { int st = 120; while(st > 0) { if (this.time1 != this.time2) { this.time1 = this.time2; st = 120; } final int finalSt = st; Platform.runLater(new Runnable() { public void run() { EmailLoginController.this.time.setText("验证码有效时间剩余:" + Integer.toString(finalSt)); } }); try { Thread.sleep(1000L); --st; } catch (InterruptedException var4) { InterruptedException e = var4; throw new RuntimeException(e); } } this.time.setVisible(false); })).start(); }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。