aes 256字符长度

twh00eeo  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(630)

我用aes 256加密数据,想知道如何限制加密文本的长度。如果我用AES256加密6个字符的字符串,它会加密大约100个字符。我想在表中添加这些数据,以便知道最大长度,以便在php codeigniter的表中设置约束。

$this->encryption->initialize(
                array(
                'cipher' => 'aes-256',
                'mode' => 'ECB',
                'key' => $key1
                )
            ); 

$this->encryption->encrypt($_POST['uname']);
laik7k3q

laik7k3q1#

给定最小信息的最佳猜测是,您将加密数据视为以null结尾的字符串,并且由于加密不会以null结尾加密数据,因此null结尾符正好位于内存中,用于删除加密数据。
以下假设aes处于ecb模式。
aes不加密字符,它加密数据字节。如果试图将加密输出作为不正确的字符处理,通常会产生错误。如果需要字符输出,则需要对加密数据进行编码,通常使用base64或十六进制。
aes是一种分组密码,因此输出总是块长度的倍数,aes为16字节。
如果输入不是需要填充的块大小的精确倍数,则pkcs#7是通常使用的填充。
由于填充,用aes加密的数据最多比输入大一个块长度。

相关问题