php 如何实现 java 的解密方式
会PHP。还不会Java,奈何文档只有Java 代码demo
public static String decode(String message, String privateKey) throws KsMerchantApiException {
try {
if (KsStringUtils.isBlank(message) || KsStringUtils.isBlank(privateKey)) {
throw new KsMerchantApiException("decode param is blank");
}
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
byte[] key = Base64.decodeBase64(privateKey);
SecretKeySpec keySpec = new SecretKeySpec(key, KEY_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(new byte[16]));
return new String(cipher.doFinal(Base64.decodeBase64(message)), CHARSET);
} catch (Exception e) {
throw new KsMerchantApiException("decode message fail", e);
}
}
已经根据Java demo 写出了一个PHP版。只是拿实际参数怎么运行都是解析false
function decode($message, $privateKey)
{
// base64 反编码数据
$message = base64_decode($message);
// base64 反编码密钥
$key = base64_decode($privateKey);
// Iv向量我根据demo代码猜应该是反编码密钥后的前16位
$iv = substr($key, 0, 16);
// 只知道Java的加密是 采用AES加密。我PHP对应 aes-256-cbc? 不知道对不对
$result = openssl_decrypt($message, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
return $result;
}
可提供参数密钥,寻求相关大佬指教
补充文档地址: 文档地址
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
已被蒙中加密方式
AES-128-CBC
无向量,问题已解决这是AES加解密,给你个解密的你参考下
或者你搜下相关文章
也可以在线调试AES在线加解密