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

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

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.还有个大佬好像分析的很在理,
在这里插入图片描述
直接引用大佬的结论的截图,但是我不可能是这种情况,因为我没用redis。
7.再次回到(这时候才想起来在pom文件导了个包,大多数人好像不需要导包,是我看的教程有问题?)导包这个问题,
我参考了之前我公司大神写的代码,他的授权获取手机号好像并不用导这个包。
找了很久发现他的maven里面是有的在这里插入图片描述
惊奇的发现我的项目里面到的那个包和这个包根本不一样,直接去把这个包去搜出来粘贴到POM文件中:

org.bouncycastle
bcprov-jdk15on
1.60

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


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

	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<optional>true</optional>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.bouncycastle</groupId>
		<artifactId>bcprov-jdk15on</artifactId>
		<version>1.60</version>
	</dependency>
	<dependency>
		<groupId>com.vdurmont</groupId>
		<artifactId>emoji-java</artifactId>
		<version>4.0.0</version>
	</dependency>
	<dependency>
		<groupId>com.auth0</groupId>
		<artifactId>java-jwt</artifactId>
		<version>3.4.0</version>
	</dependency>
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<scope>runtime</scope>
	</dependency>

	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>druid-spring-boot-starter</artifactId>
		<version>1.1.10</version>
	</dependency>

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-jdbc</artifactId>
	</dependency>
	<dependency>
		<groupId>com.baomidou</groupId>
		<artifactId>mybatis-plus-boot-starter</artifactId>
		<version>3.0.5</version>
	</dependency>
	<dependency>
		<groupId>com.github.xiaoymin</groupId>
		<artifactId>swagger-bootstrap-ui</artifactId>
		<version>1.9.3</version>
	</dependency>

	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-swagger2</artifactId>
		<version>2.9.2</version>
		<exclusions>
			<exclusion>
				<groupId>io.swagger</groupId>
				<artifactId>swagger-models</artifactId>
			</exclusion>
		</exclusions>
	</dependency>
	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-swagger-ui</artifactId>
		<version>2.9.2</version>
	</dependency>
	<dependency>
		<groupId>io.swagger</groupId>
		<artifactId>swagger-models</artifactId>
		<version>1.5.22</version>
	</dependency>
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>fastjson</artifactId>
		<version>1.2.47</version>
	</dependency>
	<dependency>
		<groupId>org.apache.httpcomponents</groupId>
		<artifactId>httpclient</artifactId>
		<version>4.5.2</version>
	</dependency>
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-lang3</artifactId>
		<version>3.1</version>
	</dependency>
	<dependency>
		<groupId>commons-codec</groupId>
		<artifactId>commons-codec</artifactId>
		<version>1.9</version>
	</dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.1.7.RELEASE</version>
    </dependency>
</dependencies>

这是大神的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

    <!--swagger2UI配置-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
        <exclusions>
            <exclusion>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-models</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-models</artifactId>
        <version>1.5.22</version>
    </dependency>
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>swagger-bootstrap-ui</artifactId>
        <version>1.9.3</version>
    </dependency>
</dependencies>

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值