Small_Google 发表于 2021-4-22 14:44

java aes的php版本求助



这是一个java生成一个128的对称密钥,可是php版本的咋写?
这样写好像不是:
$strEncode = base64_encode(openssl_random_pseudo_bytes(128));
return $strEncode;


有前辈告知一下嘛。

wychao 发表于 2021-4-22 15:55

PHP 可以使用 openssl_encrypt ;
参考:
https://www.php.net/manual/zh/function.openssl-encrypt.php
https://www.php.net/manual/zh/function.openssl-get-cipher-methods.php

Small_Google 发表于 2021-4-22 16:00

wychao 发表于 2021-4-22 15:55
PHP 可以使用 openssl_encrypt ;
参考:
https://www.php.net/manual/zh/function.openssl-encrypt.php


这是加密,我要的是生成对称密钥。

kanlai 发表于 2021-4-22 16:05

class Aes
{

    protected string $method;
    protected string $secret_key;
    protected string $iv;
    protected mixed $options;

    /**
   * 构造函数
   *
   * @Param string $key 密钥
   * @param string $method 加密方式
   * @param string $iv iv向量
   * @param mixed $options 还不是很清楚
   *
   */
    public function __construct($key='1BA55BB7CFF1ED8A', $method = 'AES-128-ECB', $iv = '', $options = 0)
    {
      $this->secret_key = $key ?? '';
      $this->method = $method;
      $this->iv = $iv;
      $this->options = $options;
    }

    /**
   * 加密方法,对数据进行加密,返回加密后的数据
   * @param string $data 要加密的数据
   * @Return string
   */
    public function encrypt(string $data): string
    {
      return (openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv));
    }

    /**
   * 解密方法,对数据进行解密,返回解密后的数据
   * @param string $data 要解密的数据
   * @return string
   */
    public function decrypt(string $data): string
    {
      return openssl_decrypt(trim($data), $this->method, $this->secret_key, $this->options, $this->iv);
    }
}

小迷糊 发表于 2021-4-22 17:26


public static function getAesEcb128($data, $crypt_key="8GH5z")
    {
      $result =openssl_decrypt(base64_decode($data), 'aes-128-ecb', base64_decode($crypt_key), OPENSSL_RAW_DATA);
      return $result ? $result : $data;
    }

    public static function setAesEcb128($data, $crypt_key="8GH5z")
    {
      return base64_encode(openssl_encrypt($data, 'aes-128-ecb', base64_decode($crypt_key), OPENSSL_RAW_DATA));
    }
页: [1]
查看完整版本: java aes的php版本求助