Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用CBC和HMac?Mcrypt PHP_Php_Security_Mcrypt_Hmac_Cbc Mode - Fatal编程技术网

如何使用CBC和HMac?Mcrypt PHP

如何使用CBC和HMac?Mcrypt PHP,php,security,mcrypt,hmac,cbc-mode,Php,Security,Mcrypt,Hmac,Cbc Mode,如何使用CBC和HMAC 我在网上找不到足够的信息 你怎么打静脉注射?当你以后需要解密时,你怎么知道它是什么?(把它放进数据库会不会违背目的?) 什么是HMAC,它是否受到黑客攻击的保护 加密文本保留在数据库中。如果有人入侵数据库,他们可能也可以访问文件管理器,除非他们找到了执行SQL注入的方法。脚本如何知道使用哪个IV和密钥,而黑客不知道 当对多段文本进行加密时,最好的方法是什么?这些文本只会在网站中被编写它的用户看到?(用户始终将其视为纯文本。) 我现在使用ECB(该网站尚未发布beta版)

如何使用CBC和HMAC

我在网上找不到足够的信息

你怎么打静脉注射?当你以后需要解密时,你怎么知道它是什么?(把它放进数据库会不会违背目的?)

什么是HMAC,它是否受到黑客攻击的保护

加密文本保留在数据库中。如果有人入侵数据库,他们可能也可以访问文件管理器,除非他们找到了执行SQL注入的方法。脚本如何知道使用哪个IV和密钥,而黑客不知道

当对多段文本进行加密时,最好的方法是什么?这些文本只会在网站中被编写它的用户看到?(用户始终将其视为纯文本。)


我现在使用ECB(该网站尚未发布beta版),但我听说CBC更安全。

静脉注射的主要目的是每种加密都不同。这不是秘密。标准做法是为每次加密创建一个随机IV,并将其存储为密文的前缀

HMAC是一个MAC,它确保只有知道密钥的人创建的消息才被接受为有效消息。重要的是在加密后应用MAC,并包括IV.e.
HMAC(IV+加密(…)
),从而在解密前验证它。这可以避免某些攻击,例如填充预言

还值得考虑使用经过身份验证的加密模式,例如AES-GCM,它以一种安全的方式将身份验证和加密结合起来。在这种情况下,一定不要重复使用静脉注射


在哪里存储密钥是一个困难的问题,并且非常依赖于应用程序。正如您所注意到的,将密钥存储在与数据库相同的系统上并不会给您带来太多好处

有时,最好从用户的密码派生密钥,使用带有salt的慢速KDF,例如PBKDF2。有时您可以将其存储在客户机上。有时,您可以将其存储在具有较小攻击面的不同服务器上


要想知道在哪里存储它,你需要明确的要求和一个威胁模型。

IV的主要目的是使每个加密都不同。这不是秘密。标准做法是为每次加密创建一个随机IV,并将其存储为密文的前缀

HMAC是一个MAC,它确保只有知道密钥的人创建的消息才被接受为有效消息。重要的是在加密后应用MAC,并包括IV.e.
HMAC(IV+加密(…)
),从而在解密前验证它。这可以避免某些攻击,例如填充预言

还值得考虑使用经过身份验证的加密模式,例如AES-GCM,它以一种安全的方式将身份验证和加密结合起来。在这种情况下,一定不要重复使用静脉注射


在哪里存储密钥是一个困难的问题,并且非常依赖于应用程序。正如您所注意到的,将密钥存储在与数据库相同的系统上并不会给您带来太多好处

有时,最好从用户的密码派生密钥,使用带有salt的慢速KDF,例如PBKDF2。有时您可以将其存储在客户机上。有时,您可以将其存储在具有较小攻击面的不同服务器上

要想知道在哪里存储它,您需要明确的需求和威胁模型