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 )/)