首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP AES加密填充NULL

PHP AES加密填充NULL
EN

Stack Overflow用户
提问于 2013-03-19 11:54:27
回答 1查看 324关注 0票数 0

我正在尝试设置AES加密。

我正在使用下面的库,它工作得很好。

http://www.coderelic.com/examples/AES_Encryption_Example.php

然而,外部业务告诉我使用填充NULL,我不知道

代码语言:javascript
复制
  3 = Pad with NULLs. (If already a multiple of the algorithm's block
  size, no padding is added).

我已经完全迷路了,在lib类中也没有空的Pad,有没有人可以帮助我,说真的,我一无所知。任何建议或帮助都值得感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-19 12:21:44

你正在使用的代码已经做到了这一点。查看AES_Encryption.php的开始

这个AES_Encryption类中的默认填充方法是零填充,零填充通常可以用于消息中的填充,因为在可读消息的末尾去掉空字节应该不会损害文本的要点。如果您关心消息完整性,则可以改用PKCS7

背景:与许多加密算法一样,AES也是一种分组密码。这意味着它只能加密与其块长度完全相同的数据。在加密数据之前,您必须决定一种填充技术,以便将数据填充到准确的块大小。但是任何像样的低级加密库都会处理这样的细节。你必须知道解密时的填充技术,或者有一种恢复原始长度的方法,这样你就不会认为填充是数据的一部分,这就是为什么外部业务指定了填充方法。

通过pad with NULL,它们几乎肯定是指具有nul字节的pad (NULL和nul,经常混淆),这就是AES_Encryption所说的零填充。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15491200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档