请教一个php,java加接密的问题

package com.rongshu.config;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class SecurityUtil {

public static final String KEY ="_@Ks`Y*9jLb.hvho}C;GwDpw";
public static final String IV = "2%8iTpSi";
public static final String DEFAULT_ENC_NAME = "UTF-8";
public static String java_openssl_encrypt(String data) {
    return java_openssl_encrypt(data, IV);
}
public static String java_openssl_encrypt(String data, String iv) {
    try {
        Cipher cipher = createCipher(iv, Cipher.ENCRYPT_MODE);
        return URLEncoder.encode(Base64.getEncoder().encodeToString(cipher.doFinal(data.getBytes())), DEFAULT_ENC_NAME);
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (NoSuchPaddingException e) {
        e.printStackTrace();
    } catch (InvalidKeyException e) {
        e.printStackTrace();
    } catch (InvalidAlgorithmParameterException e) {
        e.printStackTrace();
    } catch (IllegalBlockSizeException e) {
        e.printStackTrace();
    } catch (BadPaddingException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return null;
}

public static String java_openssl_decrypt(String data) {
    return java_openssl_decrypt(data, IV);
}

public static String java_openssl_decrypt(String data, String iv) {
    try {
        Cipher cipher = createCipher(iv, Cipher.DECRYPT_MODE);
        return new String(cipher.doFinal(Base64.getDecoder().decode(URLDecoder.decode(data, DEFAULT_ENC_NAME))));
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (NoSuchPaddingException e) {
        e.printStackTrace();
    } catch (InvalidKeyException e) {
        e.printStackTrace();
    } catch (InvalidAlgorithmParameterException e) {
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (IllegalBlockSizeException e) {
        e.printStackTrace();
    } catch (BadPaddingException e) {
        e.printStackTrace();
    }
    return null;
}


private static Cipher createCipher(String iv, int mode) throws NoSuchAlgorithmException, NoSuchPaddingException,
        InvalidKeyException, InvalidAlgorithmParameterException {
    byte[] key = KEY.getBytes();
    Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
    IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes());
    cipher.init(mode, new SecretKeySpec(key, "DESede"), ivParameterSpec);
    return cipher;
}

}

我不懂java,还往各位大佬给指点一下,上面的java加密代码怎么转成php加密,我用的php7以上的版本,很多老函数弃用了,我也没找到参考的代码我不懂java,还往各位大佬给指点一下,上面的java加密代码怎么转成php加密,我用的php7以上的版本,很多老函数弃用了,我也没找到参考的代码

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

用php的openssl加解密。
加密核心的是用3des-cbc-pkcs5加密,加密后的数据用base64编码,再把编码后的数据转为url能传输的数据,就是替换下其中的两个字符为url能传递的字符。go里的话就是base64Url编码解码。php需要自己处理下

1年前 评论
shunjian_1 (楼主) 1年前
讨论数量: 6

用php的openssl加解密。
加密核心的是用3des-cbc-pkcs5加密,加密后的数据用base64编码,再把编码后的数据转为url能传输的数据,就是替换下其中的两个字符为url能传递的字符。go里的话就是base64Url编码解码。php需要自己处理下

1年前 评论
shunjian_1 (楼主) 1年前

我也不懂java,但是看前两行有密钥KEY,有偏移向量IV,大概率就是AES加密,百度搜一下AES先测试对照看看

1年前 评论
shunjian_1 (楼主) 1年前
随波逐流

最好给个参考 输入,输出。 要不不好做对比

1年前 评论
shunjian_1 (楼主) 1年前

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