php 如何实现 java 的解密方式

发布于 2022-09-12 13:34:41 字数 1532 浏览 23 评论 0

会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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅浅 2022-09-19 13:34:41

已被蒙中加密方式AES-128-CBC 无向量,问题已解决

给我一枪 2022-09-19 13:34:41

这是AES加解密,给你个解密的你参考下

private function AES_ecb128_decrypt_base64($cipher_text_base64,$key){
        $cipher_text_dec = base64_decode($cipher_text_base64);
        $cipher_text = mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$key,$cipher_text_dec,MCRYPT_MODE_ECB);
        return rtrim($cipher_text,"\0");
    }

或者你搜下相关文章
也可以在线调试AES在线加解密

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文