-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathmcrypt-generic.xml
116 lines (111 loc) · 3.63 KB
/
mcrypt-generic.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 115560f445336d95d9fccdc1b8b2a90e210fbbd0 Maintainer: yuanyuqiang Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.mcrypt-generic" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>mcrypt_generic</refname>
<refpurpose>加密数据</refpurpose>
</refnamediv>
<refsynopsisdiv>
&warn.deprecated.function-7-1-0.removed-7-2-0;
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>mcrypt_generic</methodname>
<methodparam><type>resource</type><parameter>td</parameter></methodparam>
<methodparam><type>string</type><parameter>data</parameter></methodparam>
</methodsynopsis>
<para>
本函数用来加密数据。
传入数据长度必须是 n * 分组大小,否则需要后补 "<literal>\0</literal>"。
本函数返回加密后的数据。
注意,根据数据补齐不同,
返回的数据可能比输入的数据长度有所增加。
</para>
<para>
如果你需要把加密后的数据保存到数据库,
请确保保存 mcrypt_generic 返回的完整的字符串,
否则将无法正确解密。
如果原始数据有 10 个字符,分组大小为 8
(使用 <function>mcrypt_enc_get_block_size</function> 获取分组大小),
则数据库中至少需要 16 个字符来保存数据。
请注意 <function>mdecrypt_generic</function> 函数返回的数据也会是 16 个字符。
使用 rtrim($str, "\0") 移除字符串末尾的 0 。
</para>
<para>
如果你在例如 MySQL 这样的数据库中存储数据,
请注意 varchar 类型的字段会在插入数据时自动移除字符串末尾的“空格”。
由于加密后的数据可能是以空格(ASCII 32)结尾,
这种特性会导致数据损坏。
请使用 tinyblob/tinytext(或 larger)字段来存储加密数据。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>td</parameter></term>
<listitem>
<para>
加密描述符。
</para>
<para>
在调用本函数之前,
请使用 <function>mcrypt_generic_init</function> 函数初始化加密句柄。
在加密完成之后,
需要调用 <function>mcrypt_generic_deinit</function> 函数进行必要的清理工作。
请参见 <function>mcrypt_module_open</function> 。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
要加密的数据。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
返回加密后的数据。
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>mdecrypt_generic</function></member>
<member><function>mcrypt_generic_init</function></member>
<member><function>mcrypt_generic_deinit</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->