关于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;
    }
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理