//下面两种方式得到字符串是一样的 return openssl_encrypt ( $data , 'aes-256-cbc' , $pwd , 0 , $iv ) ; // return base64_encode(openssl_encrypt($data, 'aes-256-cbc', $pwd, OPENSSL_RAW_DATA, $iv)); public function main ( ) $str = $this - > php_openssl_encrypt ( 'my_data' , 'my_password' , '1234567890123456' ) ; //输出: uD1WB/3VZH+zEObhVxdQvA== echo $str ;

Java代码:

package main.java.com.leon.channel.command;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class Main {
    public static void main(String[] args) {
        String data = "my_data";
        String passwrod = "my_password";
        String iv = "1234567890123456";
        try {
            String base64Str = java_openssl_encrypt(data, passwrod, iv);
			//输出: uD1WB/3VZH+zEObhVxdQvA==
            System.out.print(base64Str);
        } catch (Exception e) {
            e.printStackTrace();
    public static String java_openssl_encrypt(String data, String password, String iv) throws Exception {
        byte[] key = new byte[32];
        for (int i = 0; i < 32; i++) {
            if (i < password.getBytes().length) {
                key[i] = password.getBytes()[i];
            } else {
                key[i] = 0;
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"),
                new IvParameterSpec(iv.getBytes()));
        String base64Str = Base64.getEncoder().encodeToString(cipher.doFinal(data.getBytes()));
        return base64Str;
                    PHP代码:class TestController {    public function php_openssl_encrypt($data,$pwd,$iv)    {    //下面两种方式得到字符串是一样的        return openssl_encrypt($data, 'aes-256-cbc', $pwd, 0, $iv);//        return    b
  $id=serialize($id);
  $key="1112121212121212121212";
  $data['iv']=base64_encode(substr('fdakinel;injajdji',0,16));
  $data['value']=openssl_encrypt($id, 'AES-256-CBC',$key,0,base64_decode($data['
				
在之前我们在openssl上和ios上分别测试了 AES256位cbc模式的加密和解密 今天用java提供的api来测试一下;进而确定一下在PC,iOS,安卓上三个平台下的加密解密数据; 1. 首先通过查询资料了解到: java的jdk 不支持256位AES密钥,需要安装扩展包,以下会提到 java 中默认不支持PKCS7 填充方式,支持PKCS5,经测试PKCS5和pkcs7没多大区别(在多平...
对于"c"这个字母,它是英文字母表里的第三个字母,属于辅音字母。在计算机编程中,它是非常重要的一个字母,因为它是很多编程语言的基础,比如C语言、C++、C#等。C语言是一种底层语言,对计算机的操作很直接,因此很多系统软件和嵌入式软件都是用C语言编写的。C++是在C语言的基础上发展而来的,它支持面向对象编程,所以被广泛应用于游戏开发、图形界面设计等领域。而C#则是微软公司开发的一门面向对象的编程语言,主要用于开发各种Windows平台应用程序。除了在编程中的应用,"c"这个字母也常常出现在音乐中,它代表着"do"音,是一个音阶中的基本音符之一。总的来说,虽然"c"这个字母看起来很简单,但它在不同领域中都具有着举足轻重的影响力。
解决 ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? 67977 解决 ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? T- JavaCoder: 我也是,干脆用root用户执行了 解决 ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? cfbsks ²⁰¹⁸: 加上sudo 提示找不到命令 不加提示ERROR Java 实现PHP的openssl_encrypt() hellobobo1982: 你大爷,只写了一般,没解密 解决 ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? 何欢小星星: 按你说的可以了,赞一个。 解决 ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running? a华丽的冒险: save my day 哈哈