WeiboException: RSA premaster secret error

本文介绍了一种在使用新浪微博API时遇到的WeiboException:RSApremastersecreterror错误及其解决方案。该问题由特定的SSL密钥异常引起,通过将必要的JDK扩展库文件加入到项目的类路径中得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错描述

在使用新浪微博API时,eclipse中调试没有问题,但是自己打的工程包却出了问题,报错如下:

 

WeiboException: RSA premaster secret error
        at org.waddy.weibo.http.HttpClient.httpRequest(HttpClient.java:422)
        ...
Caused by: javax.net.ssl.SSLKeyException: RSA premaster secret error
        at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.<init>(RSAClientKey
Exchange.java:99)
        ...
Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyG
enerator not available
        at javax.crypto.KeyGenerator.<init>(DashoA13*..)

 

问题原因

原因在于用Eclipse创建一个新的Java应用程序时,Eclipse会在build path添加$JAVA_HOME/jre/lib/ext目录下的四个jar:dnsns.jar,localedata.jar,sunjce_provider.jar,sunpkcs11.jar

 

解决办法

在你本地的jdk中找到上述jar包,放到你项目的lib目录(classpath)下即可。

### 解决 RSA OAEP 解码错误 当遇到 `error:04099079:rsa routines:RSA_padding_check_PKCS1_OAEP_mgf1:oaep decoding error` 错误时,通常是因为解密过程中使用的填充模式不匹配或私钥不正确[^1]。 #### 填充模式一致性 确保加密端和解密端使用相同的填充模式非常重要。对于 Java 和 Android 平台,在处理 RSA 加密时,默认情况下可能会有不同的默认填充设置。Java Web 应用程序可能使用不同的配置,而移动平台则有自己的一套标准[^4]。 为了使两端兼容,建议显式指定填充算法: ```java // Java 后台代码示例 Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding"); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte[] decryptedBytes = cipher.doFinal(encryptedData); ``` 同样地,在客户端(无论是 iOS 还是 Android),也需要保持一致的填充参数: ```kotlin // Android 客户端代码片段 val cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding") cipher.init(Cipher.ENCRYPT_MODE, publicKey) val encryptedBytes = cipher.doFinal(dataToEncrypt.toByteArray()) ``` #### 私钥验证 另一个常见原因是提供了错误的私钥用于解密操作。务必确认所使用的私钥确实对应于公钥,并且该私钥文件格式正确无误[^3]。 如果仍然存在问题,则可以尝试通过调试日志进一步排查问题所在。例如,打印出实际传递给解密方法的数据长度以及预期值,以便更好地理解哪里出了差错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值