1
- # Laravel 的加密解密机制
1
+ # 加密机制
2
2
3
- - [ 介绍 ] ( #introduction )
3
+ - [ 简介 ] ( #introduction )
4
4
- [ 设置] ( #configuration )
5
- - [ 基本用法 ] ( #using-the-encrypter )
5
+ - [ 使用 ] ( #using-the-encrypter )
6
6
7
7
<a name =" introduction " ></a >
8
- ## 介绍
8
+ ## 简介
9
9
10
- Laravel 是利用 OpenSSL 去提供 AES-256 和 AES-128 的加密。强烈建议您使用 Laravel 自己的加密机制,而不是尝试自己的「自制」加密算法。 Laravel 所有加密之后的结果都会使用消息认证码 (MAC) 去签署,所以一旦被加密就无法再改变 。
10
+ Laravel 的加密机制使用 OpenSSL 提供 AES-256 和 AES-128 的加密。强烈建议你使用 Laravel 内置的加密机制,而不是用其他的加密算法。所有 Laravel 加密之后的结果都会使用消息认证码 (MAC) 去签名,使其底层值不能在加密后修改 。
11
11
12
12
<a name =" configuration " ></a >
13
13
## 设置
14
14
15
- 在使用 Laravel 加密之前 , 你必须先设置 ` config/app.php ` 配置文件中的 ` key ` 选项。由于 Artisan 控制台会使用 PHP 的安全机制为你随机生成 key ,你可以直接使用 ` php artisan key:generate ` 命令去生成 key 。如果没有适当地设置这个值,所有被 Laravel 加密的值都将是不安全的。
15
+ 在使用 Laravel 的加密程序之前 , 你必须先设置 ` config/app.php ` 配置文件中的 ` key ` 选项。运行 Artisan命令 ` php artisan key:generate ` ,它会使用 PHP 的安全随机字节生成器来构建密钥。如果这个 key 值没有被正确设置,则所有由 Laravel 加密的值都将是不安全的。
16
16
17
17
<a name =" using-the-encrypter " ></a >
18
- ## 基本用法
18
+ ## 使用
19
19
20
20
#### 加密一个值
21
21
22
- 你可以借助 encrypt 辅助函数来加密一个值。这些值都会使用 OpenSSL 与 ` AES-256-CBC ` 来进行加密。此外,所有加密过后的值都会被签署文件消息验证码 ( MAC) ,以检测加密字符串是否被篡改过:
22
+ 你可以使用辅助函数 ` encrypt ` 来加密一个值。所有加密值都使用 OpenSSL 与 ` AES-256-CBC ` 来进行加密。此外,所有加密过的值都会使用消息认证码( MAC)进行签名 ,以检测加密字符串是否被篡改过:
23
23
24
24
<?php
25
25
@@ -48,9 +48,9 @@ Laravel 是利用 OpenSSL 去提供 AES-256 和 AES-128 的加密。强烈建议
48
48
}
49
49
}
50
50
51
- #### 不进行序列化的加密解密方法
51
+ #### 无序列化加密
52
52
53
- 加密值在加密期间通过 ` serialize ` 传递,这也就允许对对象和数组进行加密。由此,非PHP客户端接收到加密值将需要 ` unserialize ` 数据。如果您希望在不进行序列化的情况下加密和解密值 ,可以使用 ` Crypt ` facade 的 ` encryptString ` 和 ` decryptString ` 方法:
53
+ 加密值在加密期间通过 ` serialize ` 传递,这允许对象和数组的加密。因此,接收加密值的非PHP客户端将需要 ` unserialize ` 数据。如果想在不序列化的情况下加密和解密值 ,可以使用 ` Crypt ` Facade 的 ` encryptString ` 和 ` decryptString ` 方法:
54
54
55
55
use Illuminate\Support\Facades\Crypt;
56
56
@@ -60,7 +60,7 @@ Laravel 是利用 OpenSSL 去提供 AES-256 和 AES-128 的加密。强烈建议
60
60
61
61
#### 解密一个值
62
62
63
- 你可以借助 ` decrypt ` 辅助函数来解密一个值。如果值不能被正确解密 ,例如当 MAC 无效时,将抛出 ` Illuminate\Contracts\Encryption\DecryptException ` 异常 :
63
+ 你可以使用辅助函数 ` decrypt ` 来解密一个值。如果该值不能被正确解密 ,例如当 MAC 无效时,会抛出异常 ` Illuminate\Contracts\Encryption\DecryptException ` :
64
64
65
65
use Illuminate\Contracts\Encryption\DecryptException;
66
66
@@ -69,17 +69,17 @@ Laravel 是利用 OpenSSL 去提供 AES-256 和 AES-128 的加密。强烈建议
69
69
} catch (DecryptException $e) {
70
70
//
71
71
}
72
-
73
- ## 译者署名
74
- | 用户名 | 头像 | 职能 | 签名 |
75
- | ---------------------------------------- | ---------------------------------------- | ---- | ---------------------------------------- |
76
- | [ @GanymedeNil ] ( https://github.com/GanymedeNil ) | <img class =" avatar-66 rm-style " src =" https://dn-phphub.qbox.me/uploads/avatars/6859_1487055454.jpg?imageView2/1/w/100/h/100 " > | 翻译 | 争做一个 Full Stack Developer [ @GanymedeNil ] ( http://weibo.com/jinhongyang ) |
77
72
73
+ ## 译者署名
74
+ | 用户名 | 头像 | 职能 | 签名 |
75
+ | ---| ---| ---| ---|
76
+ | [ @GanymedeNil ] ( https://github.com/GanymedeNil ) | <img class =" avatar-66 rm-style " src =" https://dn-phphub.qbox.me/uploads/avatars/6859_1487055454.jpg " > | 翻译 | 争做一个 Full Stack Developer [ @GanymedeNil ] ( http://weibo.com/jinhongyang ) |
77
+ | [ @JokerLinly ] ( https://laravel-china.org/users/5350 ) | <img class =" avatar-66 rm-style " src =" https://dn-phphub.qbox.me/uploads/avatars/5350_1481857380.jpg " > | Review | Stay Hungry. Stay Foolish. |
78
78
79
- ---
79
+ ---
80
80
81
81
> {note} 欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
82
- >
82
+ >
83
83
> 转载请注明:本文档由 Laravel China 社区 [ laravel-china.org] ( https://laravel-china.org ) 组织翻译,详见 [ 翻译召集帖] ( https://laravel-china.org/topics/5756/laravel-55-document-translation-call-come-and-join-the-translation ) 。
84
- >
85
- > 文档永久地址: https://d.laravel-china.org
84
+ >
85
+ > 文档永久地址: https://d.laravel-china.org
0 commit comments