乐趣区

关于php:php与java互通aesencrypt

约定形式:

aes-128-ecb 形式,pkcs7 填充,base64

遇到的问题:

key 小于等于 16 位时,调用 openssl_encrypt($text, 'aes-128-ecb', $key) 后果统一,当 key 大于 16 位时,后果不统一。

解决问题:

key 大于 16 位,改用 256 位形式加密。

<?php

class Encrypter
{public static function encrypt($key, $text)
    {if (strlen($key) <= 16) {$algo = 'AES-128-ECB';} else {$algo = 'AES-256-ECB';}

        $data = openssl_encrypt($text, $algo, $key);

        return $data;
    }
}
退出移动版