生成邀请码

邀请码生成方法,可用:

原文地址:

https://huzb.me/2018/03/23/%E7%AE%80%E5%8D%95%E7%9A%84%E5%AF%86%E7%A0%81%E5%AD%A6%E7%94%9F%E6%88%90%E5%94%AF%E4%B8%80%E9%82%80%E8%AF%B7%E7%A0%81/

参考:https://my.oschina.net/bravozu/blog/1827254

 public static Integer CODE_LENGTH = 6;

    public static Integer PRIME1 = 13;

    public static Integer SALT = 123;

    public static Integer ARY = 36;

    public static Integer PRIME2 = 7;

    public static String HEX_36_Array = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

    public static String inviCodeGenerator(int id) {
        id = id * PRIME1;
        id = id + SALT;
        int[] b = new int[CODE_LENGTH];
        b[0] = id;
        for (int i = 0; i < 5; ++i) {
            b[i + 1] = b[i] / ARY;
            b[i] = (b[i] + b[0] * i) % ARY;
        }
        b[4] = (b[0] + b[1] + b[2]) * PRIME1 % ARY;
        b[5] = (b[3] + b[4] + b[5]) * PRIME1 % ARY;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < CODE_LENGTH; ++i) {
            sb.append(HEX_36_Array.charAt(b[(i * PRIME2) % CODE_LENGTH]));
        }
        return sb.toString();
    }