[转]Mybatis Plus 插件注册机
2018-04-25 10:10
183 查看
分析的版本为2.83
先看下面的代码
这里说明KEY和RESULT其实是C:Usersilanyu.IntelliJIdea2016.2configoptionsmybatis.xml这个文件中获取到的
下面的
这两句是校验KEY和RESULT的
具体代码如下
首先对KEY检查,看是否含有公钥,有就通过,没有就失败
然后用KEY里的公钥检测能不能用来解密RESULT
针对性的注册机:
计算出来的KEY和RESULT:
说下KEY和RESULT的使用方法:
1、安装官方版mybatis plus插件,然后关闭IDEA
2、hosts中添加127.0.0.1 www.codesmagic.com
3、记事本打开C:Users{USER}.IntelliJIdea{VERSION}configoptionsmybatis.xml,写入到对应的字段中,打开idea,mybatis插件已经激活
先看下面的代码
public static synchronized boolean refValid() { if (!validated) { validated = true; try { String key = MybatisSetting.getInstance().getKey(); //KEY String result = MybatisSetting.getInstance().getResult(); //RESULT if ((StringUtils.isBlank(key)) || (StringUtils.isBlank(result))) { valid = false; } else { Key publicKey = Codec.loadKey(key); Codec.decrypt(publicKey, Hexs.toBytes(result)); valid = true; } } catch (Exception e) { valid = false; } } return valid; }
这里说明KEY和RESULT其实是C:Usersilanyu.IntelliJIdea2016.2configoptionsmybatis.xml这个文件中获取到的
下面的
Key publicKey = Codec.loadKey(key); Codec.decrypt(publicKey, Hexs.toBytes(result));
这两句是校验KEY和RESULT的
具体代码如下
public static Key loadKey(String key) { Preconditions.checkNotNull(key, "key must not be null"); try { KeyFactory factory = KeyFactory.getInstance("RSA"); X509EncodedKeySpec spec = new X509EncodedKeySpec(Hexs.toBytes(key)); return factory.generatePublic(spec); } catch (Exception e) { throw new RuntimeException(e); } } public static byte[] decrypt(Key key, byte[] raw) { Preconditions.checkNotNull(key, "key must not be null"); Preconditions.checkNotNull(raw, "raw must not be null"); try { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(2, key); return cipher.doFinal(raw); } catch (Exception e) { throw new RuntimeException(e); } }
首先对KEY检查,看是否含有公钥,有就通过,没有就失败
然后用KEY里的公钥检测能不能用来解密RESULT
针对性的注册机:
package com.lanyus; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import java.security.*; import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; public class Main { public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException { KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA"); keygen.initialize(512); KeyPair kp = keygen.generateKeyPair(); RSAPrivateKey privateKey = (RSAPrivateKey)kp.getPrivate(); RSAPublicKey publicKey = (RSAPublicKey)kp.getPublic(); System.out.println("KEY:\n" + bytesToHexString(publicKey.getEncoded()) + "\n"); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE,privateKey); System.out.println("RESULT:\n" + bytesToHexString(cipher.doFinal("ilanyu".getBytes())) + "\n"); } private static String bytesToHexString(byte[] src){ StringBuilder stringBuilder = new StringBuilder(""); if (src == null || src.length <= 0) { return null; } for (byte aSrc : src) { int v = aSrc & 0xFF; String hv = Integer.toHexString(v); if (hv.length() < 2) { stringBuilder.append(0); } stringBuilder.append(hv); } return stringBuilder.toString(); } }
计算出来的KEY和RESULT:
KEY: 305c300d06092a864886f70d0101010500034b003048024100878e6bea07d7052499419efe4ed4382f426dc5ca2d01140f896a6d0566526c6757ff591347d888bd032f94ce92609ce0cc349de0ba9043dc3163f9667438a14d0203010001 RESULT: 414834456369b9329793f0b42c6c0af67d00516c7ceb136ad221fa0355dc2cd611ed1bcd36b61d00ba7e587d253c1de145831cd0d65b891c9dc34430f9e69c59
说下KEY和RESULT的使用方法:
1、安装官方版mybatis plus插件,然后关闭IDEA
2、hosts中添加127.0.0.1 www.codesmagic.com
3、记事本打开C:Users{USER}.IntelliJIdea{VERSION}configoptionsmybatis.xml,写入到对应的字段中,打开idea,mybatis插件已经激活
相关文章推荐
- Mybatis Plus 插件注册机
- mybatis代码生成器扩展插件 mapper-plugin-plus
- 基于SpringBoot的Mybatis-Plus插件整合
- spring boot 中 Mybatis plus 多数据源的配置
- Mybatis拦截器介绍及分页插件
- spring boot整合mybatis+mybatis-plus
- Mybatis分页插件
- PageHelper5.0.0分页插件与mybatis的集成
- mybatis学习-入门(3)-使用mybatis generator的eclipse插件
- JeeFast是一款基于SpringBoot+Mybatis-Plus+Bootstrap+Vue搭建的JAVA WEB快速开发平台
- eclipse插件:myBatis generator的使用
- springmvc整合mybatis分页插件-Pagehelper
- 阿里大牛为你进行源码级别解读 mybatis 插件
- mybatisplus自动生成
- Ethel_Pagination-----mybatis的分页插件
- idea中mybatis-generator插件实现数据库表自动生成相关接口、pojo、和xml配置
- SpringBoot-Mybatis_Plus学习记录之公共字段自动填充
- SpringBoot+SpringMVC+MybatisPlus框架整合
- Myeclipse中安装mybatis generator插件离线安装方式
- Mybatis乐观锁插件