php AES加密 可对接java AES

/**
 *Aes加密算法
 *128 ECB
 */
  class AES{
    /**
     *加密
     *$key 密钥
     *$data
     */
    public function encrypt($data,$key)
    {

      // 对接java,AES加密通过SHA1PRNG算法
      $key = substr(openssl_digest(openssl_digest($key, 'sha1', true), 'sha1', true), 0, 16);
      $encrypted = openssl_encrypt($data, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
      $encrypted = base64_encode($encrypted);

      return $encrypted;

    }

    /**
     *解密
     *$key 密钥
     *$data
     */
    public function decrypt($data,$key)
    {
        //对接java,AES加密通过SHA1PRNG算法
       $key = substr(openssl_digest(openssl_digest($key, 'sha1', true), 'sha1', true), 0, 16);
       $decrypted = openssl_decrypt(base64_decode($data), 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
       return $decrypted;

    }

  }

  $test =  new AES();
  $encrypted = $test->encrypt('sisitest123','23456');
  $decrypted = $test->decrypt($encrypted,'23456');
  echo "加密:".$encrypted."
"; echo "解密:".$decrypted;

输出内容
php AES加密 可对接java AES_第1张图片
注:
记得开启openssl 扩展
openssl_digest 部分php 版本适用

你可能感兴趣的:(php)