开发手册 欢迎您!
软件开发者资料库

Laravel - 加密

Laravel加密 - 从简单和简单的步骤学习Laravel,从基本到高级概念,包括概述,安装,应用程序结构,配置,路由,中间件,命名空间,控制器,请求,Cookie,响应,视图,刀片模板,重定向,工作数据库,错误和日志记录,表单,本地化,会话,验证,文件上传,发送电子邮件,Ajax,错误,事件处理,外观,安全性,合同,CSRF保护,身份验证,授权,工匠控制台,加密,哈希,了解发布处理。

加密是使用某些算法将纯文本转换为消息的过程,以便任何第三个用户都无法读取信息.这有助于传输敏感信息,因为入侵者瞄准传输信息的机会较少.

加密是使用名为 Cryptography 的过程执行的.要加密的文本称为纯文本,加密后获得的文本或消息称为密文.将密文转换为纯文本的过程称为解密.

Laravel使用 AES-256 AES-128 encrypter,使用Open SSL进行加密. Laravel中包含的所有值都使用协议消息验证代码进行签名,以便在加密后基础值不会被篡改.

配置

用于在Laravel中生成的命令显示在下面 :

php artisan key:generate

请注意,此命令使用PHP安全随机字节的生成器,您可以看到输出,如下面给出的屏幕截图所示;

Artisan Key

上面给出的命令有助于生成密钥可以在Web应用程序中使用.观察下面显示的屏幕截图 :

注意

加密值在 config/app.php  file,包括两个加密参数,即密码.如果使用此密钥的值未正确对齐,则在Laravel中加密的所有值都将是不安全的.

加密过程

值的加密可以通过在Laravel类的控制器中使用加密助手来完成.这些值使用OpenSSL和AES-256密码加密.所有加密值都使用消息验证代码(MAC)进行签名,以检查加密字符串的任何修改.

defaultCommand

下面显示的代码在控制器中提及,用于存储机密信息或敏感信息.

fill([         'secret' => encrypt($request->secret)      ])->save();   }}

解密过程

值的解密是用解密助手.观察以下代码行 :

use Illuminate\Contracts\Encryption\DecryptException;// Exception for decryption thrown in facadetry {   $decrypted = decrypt($encryptedValue);} catch (DecryptException $e) {   //}

请注意,如果解密过程是由于使用了无效的MAC而没有成功,因此会抛出适当的异常.