php与java互通aes_encrypt

约定方式:

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;     } }
发表评论

相关文章