问答

java 做的aes解密想用php 的openssl_encrypt 函数加密 老是不成

作者:admin 2021-06-08 我要评论

这个是java的解密代码 private static final String IV = "ZZXJoOLvoTJ5u2BF"; private static final String KEY_ALGORITHM = "AES";public static final String...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

这个是java的解密代码

private static final String IV = "ZZXJoOLvoTJ5u2BF";

private static final String KEY_ALGORITHM = "AES";
public static final String UTF_8 = "UTF-8";
public static final String AES_CBC_PADDING = "AES/CBC/PKCS5Padding";

public static String decrypt(String data, String key) throws Exception {
    return new String(decrypt(Base64.decodeBase64(data), Base64.decodeBase64(key)), "UTF-8");
}

private static byte[] decrypt(byte[] data, byte[] key) throws Exception{
    Key k = new SecretKeySpec(key, KEY_ALGORITHM);
    IvParameterSpec iv = new IvParameterSpec(IV.getBytes());
    Cipher cipher = Cipher.getInstance(AES_CBC_PADDING);
    cipher.init(Cipher.DECRYPT_MODE, k, iv);
    return cipher.doFinal(data);
}

php 该如何加密呢?

###

问题也许在于你用的 base64 编码,byte[] 转字符串或字符串转 byte[] 时。如果这样,PHP 也要同等用 base64 endcode/decode。PHP 方面注意 OPENSSL_ZERO_PADDING/OPENSSL_RAW_DATA 模式。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • PHP-fpm怎么实现进程间同步与互斥的?

    PHP-fpm怎么实现进程间同步与互斥的?

  • ts类型问题

    ts类型问题

  • js不带引号的对象格式字符串怎么转为对

    js不带引号的对象格式字符串怎么转为对

  • Number.prototype.toFixed() 四舍五入

    Number.prototype.toFixed() 四舍五入

腾讯云代理商
海外云服务器