java aes解密转化为php问题

java解密如下

    public static void main(String[] args) throws Exception {
        // 密钥
        String base64EncodedKey = "xxxxxxxxxxxxx=";
        SecretKey secretKey = new SecretKeySpec(Base64.getDecoder().decode(base64EncodedKey), "AES");
        // 加密后的数据
        String base64EncryptedData = "xxxxxxxxxxxxxxxx=";
        // 解密数据
        String decryptedData = decrypt(base64EncryptedData, secretKey);
        // 输出结果
        System.out.println("Decrypted Data: " + decryptedData);
    }
    // 使用AES解密数据
    private static String decrypt(String base64EncryptedData, SecretKey secretKey) throws Exception {
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.DECRYPT_MODE, secretKey);
        byte[] encryptedData = Base64.getDecoder().decode(base64EncryptedData);
        byte[] decryptedBytes = cipher.doFinal(encryptedData);
        return new String(decryptedBytes);
    }

想请教下这个用php该怎么解密,我用的是如下代码,不对,java中secretKey做了什么处理呢,我decode是乱码

$decryptedData = openssl_decrypt(base64_decode($base64EncryptedData), 'AES-128-ECB', base64_decode($base64EncodedKey))
最佳答案

问答:PHP 使用 openssl 解密 java AES 加密的问题 可以看这个,然后pkcs5就是php的pkcs7补码,解码后去掉补码

6个月前 评论
伽蓝幻梦 (楼主) 6个月前
deatil (作者) 6个月前
伽蓝幻梦 (楼主) 6个月前
伽蓝幻梦 (楼主) 6个月前
lovewei 6个月前
deatil (作者) 6个月前
lovewei 6个月前
deatil (作者) 6个月前
伽蓝幻梦 (楼主) 6个月前
伽蓝幻梦 (楼主) 6个月前
deatil (作者) 6个月前
讨论数量: 17

问答:PHP 使用 openssl 解密 java AES 加密的问题 可以看这个,然后pkcs5就是php的pkcs7补码,解码后去掉补码

6个月前 评论
伽蓝幻梦 (楼主) 6个月前
deatil (作者) 6个月前
伽蓝幻梦 (楼主) 6个月前
伽蓝幻梦 (楼主) 6个月前
lovewei 6个月前
deatil (作者) 6个月前
lovewei 6个月前
deatil (作者) 6个月前
伽蓝幻梦 (楼主) 6个月前
伽蓝幻梦 (楼主) 6个月前
deatil (作者) 6个月前
<?php
    function main() {
        // 密钥
        $base64EncodedKey = "xxxxxxxxxxxxx=";
        $secretKey = base64_decode($base64EncodedKey);
        // 加密后的数据
        $base64EncryptedData = "xxxxxxxxxxxxxxxx=";
        // 解密数据
        $decryptedData = decrypt($base64EncryptedData, $secretKey);
        // 输出结果
        echo "Decrypted Data: " . $decryptedData;
    }

    // 使用AES解密数据
    function decrypt($base64EncryptedData, $secretKey) {
        $encryptedData = base64_decode($base64EncryptedData);
        $decryptedBytes = openssl_decrypt($encryptedData, 'AES-128-ECB', $secretKey, OPENSSL_RAW_DATA);
        return $decryptedBytes;
    }

    main();
?>
6个月前 评论
伽蓝幻梦 (楼主) 6个月前

你发一个明文,密文

6个月前 评论

你发一个明文密文,之前有遇到过类似的问题,最终发现是要在解密前处理一下密文,可以参考一下

 $func = function($value) {
     $return = '';
     foreach(str_split($value, 2) as $pair) {
         $return. = chr(hexdec($pair));
     }
     return $return;
 };
6个月前 评论

上案例啊,加密前和加密后的
看代码怎么可能呢

6个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!