部分功能的实现和算法

07-19 992阅读

目录

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();
    }
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]