Git Product home page Git Product logo

monkey-api-encrypt's People

Contributors

dependabot[bot] avatar yinjihuan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

monkey-api-encrypt's Issues

还是不能完全杜绝

请求返回数据的加密,到客户端(浏览器)还是要解密,那就意味着解密算法是要放到浏览器上,这样别人完全可以拿到解密算法自己来进行数据的加解密,这个和混淆压缩等方式类似把,只能在一定程度上增加爬接口的难度,并不能完全避免呀

注解失效

写了自定义加密过滤器和加密算法

关于RSA自定义算法

按照DEMO中的RSA自定义算法进行配置后,前端使用什么工具进行RSA加密的喃?现目前我前端使用了JSEncrypt进行加密和解密,但是使用后端生成的公钥和密钥都无法进行加解密,仔细看了一下,后端生成的加密结果是256位,然而前端加密出来的只有127位,请赐教!谢谢!

使用文档过时了

首先很感谢作者的开源,不过不得不说,使用文档里的依赖中的加解密默认工具,解密使用的是默认系统默认编码,没有使用制定编码。最新的代码中是有修改这个问题的,想快速使用的时候没成功,还是要跟一下代码。

monkey-api-encrypt-springboot-example例子报错

发送数据之后,后台异常:

Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
	at com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:975) ~[sunjce_provider.jar:1.8.0_231]
	at com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1056) ~[sunjce_provider.jar:1.8.0_231]
	at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:853) ~[sunjce_provider.jar:1.8.0_231]
	at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446) ~[sunjce_provider.jar:1.8.0_231]
	at javax.crypto.Cipher.doFinal(Cipher.java:2164) ~[na:1.8.0_191]
	at com.cxytiandi.encrypt.util.AesEncryptUtils.aesDecryptByBytes(AesEncryptUtils.java:37) ~[monkey-api-encrypt-core-1.2.RELEASE.jar:na]
	at com.cxytiandi.encrypt.util.AesEncryptUtils.aesDecrypt(AesEncryptUtils.java:42) ~[monkey-api-encrypt-core-1.2.RELEASE.jar:na]
	at com.cxytiandi.encrypt.algorithm.AesEncryptAlgorithm.decrypt(AesEncryptAlgorithm.java:20) ~[monkey-api-encrypt-core-1.2.RELEASE.jar:na]
	at com.cxytiandi.encrypt.core.EncryptionFilter.processDecryption(EncryptionFilter.java:154) ~[monkey-api-encrypt-core-1.2.RELEASE.jar:na]
	... 35 common frames omitted

response.setContentLength问题

response.setContentLength(responseData.length()); 如果response有中文时会有问题

这个地方应该使用responseData.getBytes(encryptionConfig.getResponseCharset())的length

Required request body is missing

作者你好,遇到一个问题,在将解密后的字符串放到request中时:reqestWrapper.setRequestData(decyptRequestData);
在controller层遇到了Required request body is missing的问题,导致无法接收到正确参数。
我是参考实现,是我对什么地方没有处理导致的么?

有个大bug

@RequestMapping(value = "/", method = RequestMethod.POST) 其中value为空或者为/时报错:
"JSON parse error: Unrecognized token 'wMMsvm2p': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'wMMsvm2p': was expecting ('true', 'false' or 'null')↵ at [Source: (PushbackInputStream); line: 1, column: 10]"

使用@RequestMapping时,如果没有指定method,则会报错!

在源码ApiEncryptDataInit类中处理requestMapping注解时,见下面源码:
} else if (null != requestMapping) {
RequestMethod m = requestMapping.method()[0];
methodType = m.name().toLowerCase() + ":";
uri.append(formatUri(requestMapping.value()[0]));
}

直接取的requestMapping.method()[0],此时会取不到请求的method,将会报数组越界!请fixed! 嘿嘿

集成加密启动报SolrClient错误

你好,我集成@EnableEncrypt //启用加密Starter 的时候,原本我使用了solrj,在启动类中加了@SpringBootApplication(exclude = SolrAutoConfiguration.class)这个注解,在新增了@EnableEncrypt 之后我的项目启动的时候报如下错(不加@EnableEncrypt之前项目正常运行):
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'solrClient' defined in class path resource [org/springframework/boot/autoconfigure/solr/SolrAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.solr.client.solrj.SolrClient]: Factory method 'solrClient' threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/solr/client/solrj/impl/HttpSolrClient$Builder

关于rsa

您好,对于非对称加密的算法会生成一对公私钥,EncryptAlgorithm接口现在只支持传一个key,我现在的做法是扩展原有配置类的字段存放秘钥对,然后在EncryptAlgorithm的实现类中直接调用,这样接口中的第二个参数就可以去掉了

通过注解获取的Controller不完整

@Override
    public void setApplicationContext(ApplicationContext ctx) throws BeansException {
    	this.contextPath = ctx.getEnvironment().getProperty("server.servlet.context-path");
        Map<String, Object> beanMap = ctx.getBeansWithAnnotation(RestController.class);
        initData(beanMap);
        beanMap = ctx.getBeansWithAnnotation(Controller.class);
        initData(beanMap);
    }

这段代码通过@controller注解获取的Controller只有一部分,没获取到我项目里的api接口Controller,导致@Encrypt注解无效。请问这种情况是什么原因?

多个ControllerAdvice会失效

使用@ControllerAdvice进行统一处理时,项目中有一个异常全局拦截也使用了@ControllerAdvice,异常拦截会失效

BadPaddingException

image
Thank you for the code. But while running the projecting and using the annotation @decrypt. I am getting BadPaddingException. Would really appreciate if you can help me out on this.

整合进shiro失败....

推测,shiro对request进行过一次包装,对request的inputStream读过一次所以这个再去读的时候为空了...解码错误

IllegalStateException

调用filter链的chain.doFilter()将请求转发给下一个filter 如果在拦截url向前端返回数据时使用了printWriter 会和servletOutputStream 冲突报错 IllegalStateException

如何对JSON 格式进行加密

现在没有对JSON 加密,对JSON 机密后也可以解密,但是报错json解析错误
JSON parse error: No content to map due to end-of-input; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input\n at [Source: UNKNOWN; line: 1, column: 0]

XSS怎么处理呢?

老师,你好,对于数据安全性你这样做完全没有问题,但是对于XSS攻击的话,用注解的形式不好实现的吧!

我在maven的setting.xml里面配置了仓库,在pom文件里面加入,还是找不到

<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories>

<!--数据传输加密解密--> <!-- https://github.com/yinjihuan/spring-boot-starter-encrypt --> <dependency> <groupId>com.cxytiandi</groupId> <artifactId>spring-boot-starter-encrypt</artifactId> <version>1.0</version> </dependency>

Dependency 'com.cxytiandi:spring-boot-starter-encrypt:1.0' not found less... (Ctrl+F1)
Inspection info: Inspects a Maven model for resolution problems.

后端返回的数据还是的json格式

后端返回的数据还是的json格式.目前返回的是String类型,前端在response接收到之前 会报一个js的JSON.parse的错误.

补充CryptoJS的引入:
var CryptoJS = require("crypto-js");

随机生成key

您好,如果不用固定的key,需要随机生成aes加密key 是重写EncryptionConfig这个类就可以吗

AES 加密 Pcks5 与 Pcks7 填充策略的问题

我观察到AesEncryptUtils这个类用的填充策略是Pcks5来解密的。前端用的是Pcks7来解密的。我用AesEncryptUtils类来解密加密的字符串没有问题,但是用前端Pcks7的填充策略去解密,解密不成功。请问是两者填充策略的问题吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.