加密与解密

更新时间: 2019-08-01 16:47

配置

在使用 Lumen 的加解密前,你应该先把 .env 文件中的 APP_KEY 选项设置为 32 位随机字符串。如果没有适当地设置这个值,所有被 Lumen 加密的值都将是不安全的。

基本用法

加密一个值

你可以使用 Crypt 门面来加密一个值。所有的加密值都使用 OpenSSL 和 AES-256-CBC 来进行加密。 此外, 所有加密过的值都会使用消息认证码 (MAC)来进行签名,以检测加密字符串是否被篡改过 :

例如,我们可以使用 encrypt 方法加密机密信息,并把它保存在 Eloquent 模型

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;

class UserController extends Controller
{
    /**
     * 保存用户的机密消息。
     *
     * @param    Request  $request
     * @param    int  $id
     * @return  Response
     */
    public function storeSecret(Request $request, $id)
    {
        $user = User::findOrFail($id);

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

解密一个值

当然,你可以使用 Crypt 门面的 decrypt 方法来解密值。如果该值不能够被正确的解密,例如当 MAC(消息认证码)无效时,就会抛出异常 Illuminate\Contracts\Encryption\DecryptException

use Illuminate\Contracts\Encryption\DecryptException;

try {
    $decrypted = Crypt::decrypt($encryptedValue);
} catch (DecryptException $e) {
    //
}

查看更多 Laravel 中文文档 信息

用户体验面面观

用户体验面面观

[美] 库涅夫斯基(Mike Kuniavsky) / 汤海 / 清华大学出版社 / 2010-5 / 69.00

这是一本专注于用户研究和用户体验的经典读物,同时也是一本容易上手的实战手册,从实践者的角度,着重讨论和阐述了用户研究的重要性、主要的用户研究方法和工具,同时借助于实例介绍了相关的应用。全书共3部分18章,深度剖析了何为优秀的用户设计,用户体验包括哪些研究方法和工具,如何 得出和分析用户体验调查结果等。一起来看看 《用户体验面面观》 这本书的介绍吧!

html转js在线工具

html转js在线工具

html转js在线工具

UNIX 时间戳转换

UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试

正则表达式在线测试

正则表达式在线测试