php - MVC架构中,密码加密应该在哪里进行

标签 php model-view-controller codeigniter encryption

我正致力于在一个中等规模的 PHP CodeIgniter 网站上创建基本的密码安全性。我需要开始加密保存到数据库中的密码。可以使用不同的方法插入用户密码,包括 CSV 导入或个人注册方法。

因此,我只想知道在应该加密密码的 MVC 系统中,正确的级别是什么?

最佳答案

您唯一需要执行此功能的时间是添加新用户或更新现有用户的密码时。这两个功能都应由用户模型执行。例如,像这样的东西:

$user = new User();
$user->setName('...');
$user->setPassword('...');
$user->save();

或:

$user = User::find('...');
$user->setPassword('...');
$user->save();

在此示例中,setPassword() 方法将进行实际加密。

另外,请这样想——将未加密的密码输入系统应该是不可能的。因此,您使用户模型成为与用户交互的唯一方式,并让它透明地加密所有提供给它的密码。

关于php - MVC架构中,密码加密应该在哪里进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836660/

相关文章:

php - X-SendFile 有什么用?

email - 命令顺序错误。服务器响应是 : This mail server requires authentication when attempting to send to a non-local e-mail

mysql - Spring MVC + Hibernate 没有对数据库做任何事情,没有抛出异常

php - 在 Codeigniter/MYSQL 中将所选属性添加到 group_concat 输出

javascript - 单击 Google map 标记的 ajax 请求后加载 map

php - 是否可以从变量中使用 PHP 中的命名空间?

php - 带有 "use"关键字的可选命名空间

c# - 网站在 MVC Controller 上请求 "Authentication Required",而不是其他 Controller

javascript - Codeigniter ajax表单验证错误

php - preg_match_all php 插入结果