博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DbSchema注册码生成
阅读量:4457 次
发布时间:2019-06-08

本文共 2353 字,大约阅读时间需要 7 分钟。

由于公司项目使用了Cassandra进行数据的存储,查看数据的时候,每次都要在命令行操作,既麻烦看起来效果也不好。所以就在网上找了下面几个图形化工具:

  1.DbSchema

  2.RazorSQL

  3.DBeaver

其中,DBeaver是免费的,另外两个需要购买。但是DBeaver是不支持Cassandra的,需要使用第三方的驱动。结果找到一个第三方驱动后,发现这个驱动比另外两个软件还贵,OMG~

没办法,只能去网上找PoJie了。由于RazorSQL的界面相对来说比较丑,所以就选择了DbSchema。

在网上搜了一下,找到一个生成注册码的工具:

本来想使用现成的工具的,可是中间各种挫折,没能成功,于是就顺着这个哥们的思路写了一个Java的。因为只是自己偶尔使用,所以没搞太复杂,就一个Java类,下面是代码:

import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Random;public class DbSchemaKeyGenerator {    public static void main(String[] args) {        String name = "your_name";        try {            String key = generateKey(name);            System.out.println("key: " + key);        } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {            e.printStackTrace();        }    }    private static String generateKey(String name) throws NoSuchAlgorithmException, UnsupportedEncodingException {        String salt = getSalt();        String encryptSource = "ax5" + name + "b52w" + salt + "vb3";        MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");        String hash = formatToHex(localMessageDigest.digest(encryptSource.getBytes("UTF-8")));        return hash.substring(0, 4) + salt + hash.substring(4);    }    private static String formatToHex(byte[] paramArrayOfByte) {        StringBuilder localStringBuilder = new StringBuilder();        for (int m = 0; m < paramArrayOfByte.length; m++) {            if ((m % 32 == 0) && (m != 0)) {                localStringBuilder.append("\n");            }            String str = Integer.toHexString(paramArrayOfByte[m]);            if (str.length() < 2) {                str = "0" + str;            }            if (str.length() > 2) {                str = str.substring(str.length() - 2);            }            localStringBuilder.append(str);        }        return localStringBuilder.toString();    }    private static int random(int min, int max) {        return rand() % (max - min + 1) + min;    }    private static int rand() {        return new Random().nextInt(Integer.MAX_VALUE);    }    private static String getSalt() {        int r = random(10000, 30000);        return String.valueOf(r);    }}
View Code

 

Tips:最后说一句,如果有条件,而且又使用的比较多的,最好还是购买正版吧,官网地址:

 

转载于:https://www.cnblogs.com/yeqingcheng/p/8398145.html

你可能感兴趣的文章
拓扑排序基础题——排序
查看>>
转:iphone 申请证书
查看>>
Python就业方向
查看>>
一步步学习SPD2010--第二章节--处理SP网站(3)--创建网站层次架构
查看>>
TCP
查看>>
Excel常用函数大全
查看>>
团队-团队编程项目中国象棋-模块测试过程
查看>>
10个经典的C语言面试基础算法及代码
查看>>
普通的java Ftp客户端的文件上传
查看>>
视图系统
查看>>
Palindromes _easy version
查看>>
vue 小记
查看>>
CURRICULUM VITAE
查看>>
菱形缓冲器电路
查看>>
08多态
查看>>
Groovy 程序结构
查看>>
使用 WordPress 的导航菜单
查看>>
input只能输入数字和小数点,并且只能保留小数点后两位 - CSDN博客
查看>>
js 不固定传参
查看>>
远程调试UWP遇到新错误Could not generate the root folder for app package ......
查看>>