首页 > 编程知识 正文

加密和解密使用不同的密钥,两种加密形式

时间:2023-05-06 01:45:50 阅读:45184 作者:1943

laravel的两种加密方式哈希配置文件第一种第二种加密配置文件加密解密

散列配置文件

Laravel的哈希门提供了安全的Bcrypt和Argon2哈希算法来存储用户密码。

注: Bcrypt最适合散列密码。 “工作因素”是可调的,因此随着硬件功能的提高,生成散列的时间也会增加。

构成

将默认哈希驱动程序设置为配置文件config/hashing.php,目前支持两种驱动程序: Bcrypt和Argon2。

注: Argon2i驱动程序需要PHP 7.2.0或更高版本,Argon2id驱动程序需要PHP 7.3.0或更高版本。

第一个Bcrypt (管理员888 ) )。

第二个用户Illuminatesupportfacadeshash; $ pwd=hash :3360 make (admin 888 ); //如何验证加密存储

if (hash :3360 check (qwe 123456 ),$pwd ) /匹配密码. }公共功能登录) ($credentials=request ) ) (emmc $token=auth(API )-attempt ($ credentials ) ) { return response )-JSON ) ['error'='unauthorized'],401 } retuthoud }加密概述Laravel加密器使用OpenSSL提供AES-256和AES-128加密。 强烈建议您不要使用Laravel附带的加密设置推出自己的“土生土长”加密算法。 所有用Laravel加密的值都是使用消息量化代码(MAC )签名的,这样基本值加密后就不能更改。

构成

在使用Laravel加密之前,必须在配置文件config/app.php中将key选项设置为32位随机字符串。 可以使用php artisan key:generate命令生成此key,该命令使用PHP安全的随机字节生成器构建key的值。 如果未设置此值,则所有Laravel加密值都不安全。

加密可以使用辅助函数encrypt加密数据。 所有加密值都使用OpenSSL和AES-256-CBC密码(cipher )进行加密。 此外,所有加密值都用一个消息认证码(MAC )签名,以防止修改加密字符串。

encrypt '密码''是未序列化的加密

加密值在加密过程中由序列化函数serialize处理,允许对对象和数组进行加密。 因此,非PHP客户机接收到的加密数据必须进行unserialize反序列化。

如果在加密和解密数据时不执行序列化操作,请使用Crypt提供的encryptString和decryptString方法。

use illuminatesupportfacadescrypt; $ encrypted=crypt :3360 encrypt string (' hello world.'; $ decrypted=crypt :3360 decryptstring ($ encrypted ); 解密可以使用辅助函数decrypt解密加密数据。 如果此值无法解密,例如MAC无效,则会抛出illuminatecontractsencryptiondecrypt exception异常。

use illuminatecontractsencryptiondecrypt exception; try { $ decrypted=decrypt ($ encrypted value; }catch(decryptexception$e )/)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。