小程序对encryptedData进行解密报错javax.crypto.BadPaddingException: pad block corrupted

第一次写小程序登陆授权,踩了很多坑。什么用encryptedData、iv、code这些参数去登录,其实只要一个code就够了。
还有各种看不太明白的参数secret、authorization_code等等,不过不影响写代码。
回到正题,今天遇到最大的一个坑就是javax.crypto.BadPaddingException: pad block corrupted这个错,我是按着网上教程来做的,当我敲到需要这个包的的时候就报错了,我不知道为什么。
小程序对encryptedData进行解密报错javax.crypto.BadPaddingException: pad block corrupted_第1张图片
然后我就网上查了一下,说是缺个包,按照他给的包

org.bouncycastle
bcprov-jdk16
1.46
)依赖粘贴到Pom文件里面去,开始是能查而且能获取到手机号(debug的时候后确实能获取手机号),但是就是返回不出去数据,报这个错javax.crypto.BadPaddingException: pad block corrupted。
然后开始排查措的原因:
1.参数:encryptedData、iv、code并确定code没有被重复利用。参数没有问题
2.请求方式,一般都是get,我怕encryptedData这个数据过长会导致数据丢失,用Post试了一把,结果还是报同样的错,并不是这个原因。
3.再一次确认appId、appSecret等参数是否有效,结果证明这些数据都是有用的。
4.网上有人说是这个里面的参数有问题,用了他们的参数,还是一样报错。在这里插入图片描述
咻~~
5.还有人说是公钥写错了,蜜汁公钥,不晓得。
6.还有个大佬好像分析的很在理,
小程序对encryptedData进行解密报错javax.crypto.BadPaddingException: pad block corrupted_第2张图片
直接引用大佬的结论的截图,但是我不可能是这种情况,因为我没用redis。
7.再次回到(这时候才想起来在pom文件导了个包,大多数人好像不需要导包,是我看的教程有问题?)导包这个问题,
我参考了之前我公司大神写的代码,他的授权获取手机号好像并不用导这个包。
找了很久发现他的maven里面是有的小程序对encryptedData进行解密报错javax.crypto.BadPaddingException: pad block corrupted_第3张图片
惊奇的发现我的项目里面到的那个包和这个包根本不一样,直接去把这个包去搜出来粘贴到POM文件中:

org.bouncycastle
bcprov-jdk15on
1.60

在试一次,已经花了一上午时间的bug终于干掉了,但我还是不明白为什么他们的项目中并不需要导这个包maven中就有了这个包,应该是包含在某个包中。
但是具体是在哪个包中呢?有没有大神指点一下
这是我的pom


org.springframework.boot
spring-boot-starter-web

	
		org.projectlombok
		lombok
		true
	
	
		org.springframework.boot
		spring-boot-starter-test
		test
	
	
		org.bouncycastle
		bcprov-jdk15on
		1.60
	
	
		com.vdurmont
		emoji-java
		4.0.0
	
	
		com.auth0
		java-jwt
		3.4.0
	
	
		mysql
		mysql-connector-java
		runtime
	

	
		com.alibaba
		druid-spring-boot-starter
		1.1.10
	

	
		org.springframework.boot
		spring-boot-starter-jdbc
	
	
		com.baomidou
		mybatis-plus-boot-starter
		3.0.5
	
	
		com.github.xiaoymin
		swagger-bootstrap-ui
		1.9.3
	

	
		io.springfox
		springfox-swagger2
		2.9.2
		
			
				io.swagger
				swagger-models
			
		
	
	
		io.springfox
		springfox-swagger-ui
		2.9.2
	
	
		io.swagger
		swagger-models
		1.5.22
	
	
		com.alibaba
		fastjson
		1.2.47
	
	
		org.apache.httpcomponents
		httpclient
		4.5.2
	
	
		org.apache.commons
		commons-lang3
		3.1
	
	
		commons-codec
		commons-codec
		1.9
	
    
        org.springframework
        spring-web
        5.1.7.RELEASE
    

这是大神的pom

org.springframework.boot
spring-boot-starter-web


org.springframework.cloud
spring-cloud-starter-netflix-eureka-client


org.springframework.cloud
spring-cloud-starter-openfeign


org.projectlombok
lombok
true


org.springframework.boot
spring-boot-starter-test
test


com.qky
qky-common
1.0-SNAPSHOT


io.jsonwebtoken
jjwt
${jwt.version}


org.springframework.boot
spring-boot-starter-data-redis


com.alibaba
fastjson
1.2.47


org.springframework.boot
spring-boot-configuration-processor
true

    
    
        io.springfox
        springfox-swagger2
        2.9.2
        
            
                io.swagger
                swagger-models
            
        
    
    
        io.springfox
        springfox-swagger-ui
        2.9.2
    
    
        io.swagger
        swagger-models
        1.5.22
    
    
        com.github.xiaoymin
        swagger-bootstrap-ui
        1.9.3
    

今天就记录到这,下班了,溜了。

你可能感兴趣的:(记录开发过程中踩的坑)