由于公司项目使用了Cassandra进行数据的存储,查看数据的时候,每次都要在命令行操作,既麻烦看起来效果也不好。所以就在网上找了下面几个图形化工具:
1.DbSchema
2.RazorSQL
3.DBeaver
其中,DBeaver是免费的,另外两个需要购买。但是DBeaver是不支持Cassandra的,需要使用第三方的驱动。结果找到一个第三方驱动后,发现这个驱动比另外两个软件还贵,OMG~
没办法,只能去网上找PoJie了。由于RazorSQL的界面相对来说比较丑,所以就选择了DbSchema。
在网上搜了一下,找到一个生成注册码的工具:
https://blog.riguz.com/it/crack_dbschema.html
本来想使用现成的工具的,可是中间各种挫折,没能成功,于是就顺着这个哥们的思路写了一个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); } }
Tips:最后说一句,如果有条件,而且又使用的比较多的,最好还是购买正版吧,官网地址:
https://www.dbschema.com/index.html