Tib*_*bin 11 php encryption cryptography codeigniter encryption-symmetric
当我尝试使用CI加密库加密字符串时,返回的字符串非常大,大约178个字符长.是否有任何方法可以减少字符串的长度.默认密码是:AES-128.
假设:$data=$this->encryption->encrypt("welcome to ooty");
它返回178长度的字符串值..我需要它减少到20以下
更新:当我加密一个数字时,比如6,它返回178个长字符串.
加密不会减少数据长度。
AES 加密输出长度取决于模式。CTR模式等流媒体模式不会改变长度。ECB 或 CBC 等块模式需要填充为块长度的倍数,但 PKCS#7 填充最多只会增加一个块大小的长度,对于 AES 为 16 字节。
除了加密字节之外,还有更多的事情发生。可以使用诸如CBC之类的模式,并且可以将IV(一个块长度)添加到加密数据之前。可以添加身份验证,这可能会增加 32 字节。可能存在密码推导并且可能添加盐和计数。最后结果可以编码为 Base64 或十六进制,这将分别增加长度 33% 或 100%。
可能的情况:“welcome to ooty”是 15 个字节。填充为 1 字节,身份验证 32 字节,盐 32 字节,计数 2 字节,版本 1 字节 = 83 字节,十六进制编码 = 166 字节,接近您获得的 178 字节。
所有这些额外的东西都可以带来安全感。根据您的使用情况,它可能并非全部必要,请咨询加密领域专家。