goja-core/src/main/java/goja/core/kits/lang/KeyCodeKit.java
public static String generateKeyCode(String productSerialNo, String codeKey) {
        return digestPassword(StringUtils.leftPad(productSerialNo, 10, StringPool.ZERO)
                + StringUtils.leftPad(codeKey, 5, StringPool.ZERO)
                + RandomStringUtils.randomAlphanumeric(5)
                + DateTime.now().getMillis());
    }
public static String generateKeyCode(String productSerialNo, String codeKey) {
        return digestPassword(StringUtils.leftPad(productSerialNo, 10, StringPool.ZERO)
                + StringUtils.leftPad(codeKey, 5, StringPool.ZERO)
                + RandomStringUtils.randomAlphanumeric(5)
                + DateTime.now().getMillis());
    }
产品序列号前10位+KEY前5位+5位随机数字和字符（大小写）+时间戳 MD5 加密

@param productSerialNo 产品序列号
@param codeKey         产品代码
@return 授权码