V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
holystrike
V2EX  ›  Java

Java 的这段 cipher AES 解密算法,求个 PHP 版本

  •  
  •   holystrike · Jun 23, 2022 · 1896 views
    This topic created in 1404 days ago, the information mentioned may be changed or developed.

    这是某应用给的 Java 的解密算法

    
    import org.apache.commons.codec.binary.Base64;
    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    import java.nio.charset.StandardCharsets;
    
    public class AESUtils {
        public static String aesDecrypt(String str, String key) throws Exception {
            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
            cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES"));
            byte[] bytes = Base64.decodeBase64(str);
            bytes = cipher.doFinal(bytes);
            return new String(bytes, StandardCharsets.UTF_8);
        }
    }
    

    我尝试了多种,都无法解出来

    参考加密数据(解密秘钥 1234567890123456 )

    E4M54v2CbwnbdG+quqWwgFGI5dgx3shx2gGZRiihvkQQLgbH12Y9/dJXO1/7H7QLL3H9fstismlYMLQrZxShEyknFJcLG96HbG4Cx/7gq4YMXgZJDI9Qvm1sH6H4arIHaPTSbHTk
    
    faYo7fo6Sc3lwBMOpJHi33Os5u7DobPmqkzkuyoRxbTD4mZaSYleDcYuouQTdma+rubH5PPzg0+R09XsEHWkgF6cc+Ylh2w0N6590eJDNdQvoI4m7eSiWQCJo5nN5zXj/2QeQcYwIfdpmQ==
    

    应得到的解密数据(解密秘钥 1234567890123456 )

    {
     "id": "dbe8970a-53a7-165c-7339-02c55bbddea5",
     "appKey": "FQa4kEGD",
     "appId": "34526534673",
     "msgType": "notice",
     "time": "1603698652093",
     "bizContent": {
      "name:": "测试",
      "value": "测试"
     }
    }
    

    无奈不大懂 java ,需要用 PHP 来进行解密

    求双修人士改为 PHP 可以用版本,谢!

    4 replies    2022-06-24 10:12:58 +08:00
    y830CAa5nink4rUQ
        1
    y830CAa5nink4rUQ  
       Jun 23, 2022   ❤️ 1
    50 块钱解君愁
    leadfast
        2
    leadfast  
       Jun 23, 2022   ❤️ 1
    随便搜的一个就可以的啊


    ```
    function decrypt($str, $key)
    {
    $decrypted = openssl_decrypt($str, 'AES-128-ECB', $key, OPENSSL_ZERO_PADDING);
    $dec_s = strlen($decrypted);
    $padding = ord($decrypted[$dec_s - 1]);
    $decrypted = substr($decrypted, 0, -$padding);
    return $decrypted;
    }

    $str = "E4M54v2CbwnbdG+quqWwgFGI5dgx3shx2gGZRiihvkQQLgbH12Y9/dJXO1/7H7QLL3H9fstismlYMLQrZxShEyknFJcLG96HbG4Cx/7gq4YMXgZJDI9Qvm1sH6H4arIHaPTSbHTkfaYo7fo6Sc3lwBMOpJHi33Os5u7DobPmqkzkuyoRxbTD4mZaSYleDcYuouQTdma+rubH5PPzg0+R09XsEHWkgF6cc+Ylh2w0N6590eJDNdQvoI4m7eSiWQCJo5nN5zXj/2QeQcYwIfdpmQ==";

    $res = decrypt($str, "1234567890123456");

    ```
    y830CAa5nink4rUQ
        3
    y830CAa5nink4rUQ  
       Jun 23, 2022   ❤️ 1
    openssl_decrypt(base64_decode('E4M54v2CbwnbdG+quqWwgFGI5dgx3shx2gGZRiihvkQQLgbH12Y9/dJXO1/7H7QLL3H9fstismlYMLQrZxShEyknFJcLG96HbG4Cx/7gq4YMXgZJDI9Qvm1sH6H4arIHaPTSbHTkfaYo7fo6Sc3lwBMOpJHi33Os5u7DobPmqkzkuyoRxbTD4mZaSYleDcYuouQTdma+rubH5PPzg0+R09XsEHWkgF6cc+Ylh2w0N6590eJDNdQvoI4m7eSiWQCJo5nN5zXj/2QeQcYwIfdpmQ=='), 'AES-128-ECB', '1234567890123456', OPENSSL_RAW_DATA);

    ```
    {
    "id": "dbe8970a-53a7-165c-7339-02c55bbddea5",
    "appKey": "FQa4kEGD",
    "appId": "34526534673",
    "msgType": "notice",
    "time": "1603698652093",
    "bizContent": {
    "name:": "测试",
    "value": "测试"
    }
    }
    ```
    holystrike
        4
    holystrike  
    OP
       Jun 24, 2022
    感谢楼上各佬,管用!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3779 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:35 · PVG 12:35 · LAX 21:35 · JFK 00:35
    ♥ Do have faith in what you're doing.