青春飞扬http://www.veryecs.com/Good Luck To You!青春飞扬http://www.veryecs.com/?id=6<p>曹操再奸,都有知心朋友,刘备再好,都有死对头,孙权再温柔,两边都是仇。不要太在乎别人对你的评价,做好自己的事,走好自己的路! 不要活在别人的眼里。不喜欢你的人,不要去找,不帮助你的人,别去讨好,不想你的人,绝不打扰。珍惜你的人,放在首位,帮助你的人,和他深交。惦念你的人,把他记牢。只有自己真正有困难了,才明白,谁是焦急的牵挂,谁是转身的天涯! 做人其实很简单.人心换人心.你真.我更真!<br/></p><p><br/></p><p><br/></p><p>人情似纸张张薄,世事如棋局局新,不信但看席中酒,杯杯先敬有(权)钱人,你成功了,你的身边八杆子打不着人,都会说和你是什么亲戚,你落魄了,有些人就算是你的至亲也会弃你而去,这就是人生有态</p><p><br/></p><p>学会沉默</p><p><br/></p><p>有时候,你被人误解,你不想争辩,所以选择沉默。本来就不是所有的人都得了解你,因此你认为不必对全世界喊话。</p><p>却也有时候,你被最爱的人误解,你难过到不想争辩,也只有选择沉默。全世界都可以不懂你,但他应该懂,若他竟然不能懂,还有什么话可说?</p><p><br/></p><p>生命中往往有连舒伯特都无言以对的时刻,毕竟不是所有的是非都能条列清楚,甚至可能根本没有真正的是与非。</p><p>那么,不想说话,就不说吧<span style="color: #333333; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; background-color: #FFFFFF;">在多说无益的时候,也许沈默就是最好的解释。那样至少可以做到平静。平静地看待这件事,平静地把其他该处理的事处理好。平静,没有快乐,也没有不快乐。</span></p><p><br/></p><p><br/></p>Wed, 24 Feb 2021 10:40:44 +0800青春飞扬http://www.veryecs.com/?id=5<p>#正则表达式</p><p>```</p><p>一、校验数字的表达式&nbsp;</p><p><br/></p><p>1 数字:</p><p>^[0-9]*$</p><p>2 n位的数字:</p><p>^\d{n}$</p><p>3 至少n位的数字:</p><p>^\d{n,}$</p><p>4 m-n位的数字:</p><p>^\d{m,n}$</p><p>5 零和非零开头的数字:</p><p>^(0|[1-9][0-9]*)$</p><p>6 非零开头的最多带两位小数的数字:</p><p>^([1-9][0-9]*)+(.[0-9]{1,2})?$</p><p>7 带1-2位小数的正数或负数:</p><p>^(\-)?\d+(\.\d{1,2})?$</p><p>8 正数、负数、和小数:</p><p>^(\-|\+)?\d+(\.\d+)?$</p><p>9 有两位小数的正实数:</p><p>^[0-9]+(.[0-9]{2})?$</p><p>10 有1~3位小数的正实数:</p><p>^[0-9]+(.[0-9]{1,3})?$</p><p>11 非零的正整数:</p><p>^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$</p><p>12 非零的负整数:</p><p>^\-[1-9][]0-9&quot;*$ 或 ^-[1-9]\d*$</p><p>13 非负整数:</p><p>^\d+$ 或 ^[1-9]\d*|0$</p><p>14 非正整数:</p><p>^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$</p><p>15 非负浮点数:</p><p>^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$</p><p>16 非正浮点数:</p><p>^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$</p><p>17 正浮点数:</p><p>^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$</p><p>18 负浮点数:</p><p>^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$</p><p>19 浮点数:</p><p>^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$&nbsp;</p><p><br/></p><p>二、校验字符的表达式</p><p><br/></p><p>1 汉字:</p><p>^[\u4e00-\u9fa5]{0,}$</p><p>2 英文和数字:</p><p>^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$</p><p>3 长度为3-20的所有字符:</p><p>^.{3,20}$</p><p>4 由26个英文字母组成的字符串:</p><p>^[A-Za-z]+$</p><p>5 由26个大写英文字母组成的字符串:</p><p>^[A-Z]+$</p><p>6 由26个小写英文字母组成的字符串:</p><p>^[a-z]+$</p><p>7 由数字和26个英文字母组成的字符串:</p><p>^[A-Za-z0-9]+$</p><p>8 由数字、26个英文字母或者下划线组成的字符串:</p><p>^\w+$ 或 ^\w{3,20}$</p><p>9 中文、英文、数字包括下划线:</p><p>^[\u4E00-\u9FA5A-Za-z0-9_]+$</p><p>10 中文、英文、数字但不包括下划线等符号:</p><p>^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$</p><p>11 可以输入含有^%&amp;&#39;,;=?$\&quot;等字符:</p><p>[^%&amp;&#39;,;=?$\x22]+</p><p>12 禁止输入含有~的字符:</p><p>[^~\x22]+&nbsp;</p><p><br/></p><p>三、特殊需求表达式&nbsp;</p><p><br/></p><p>1、 Email地址:</p><p>^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$</p><p>2 、域名:</p><p>[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?</p><p>3 、InternetURL:</p><p>[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&amp;=]*)?$</p><p>4 、手机号码:</p><p>^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$</p><p>5 、电话号码(&quot;XXX-XXXXXXX&quot;、&quot;XXXX-XXXXXXXX&quot;、&quot;XXX-XXXXXXX&quot;、&quot;XXX-XXXXXXXX&quot;、&quot;XXXXXXX&quot;和&quot;XXXXXXXX):</p><p>^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$&nbsp;</p><p>6 国内电话号码(0511-4405222、021-87888822):</p><p>\d{3}-\d{8}|\d{4}-\d{7}</p><p>7 、身份证号:</p><p>15或18位身份证:</p><p>^\d{15}|\d{18}$</p><p>15位身份证:</p><p>^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$</p><p>18位身份证:</p><p>^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$</p><p>8、 短身份证号码(数字、字母x结尾):</p><p>^([0-9]){7,18}(x|X)?$</p><p>或</p><p>^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$</p><p>9 、帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):</p><p>^[a-zA-Z][a-zA-Z0-9_]{4,15}$</p><p>10 、密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):</p><p>^[a-zA-Z]\w{5,17}$</p><p>11 、强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):</p><p>^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$&nbsp;</p><p>12、 日期格式:</p><p>^\d{4}-\d{1,2}-\d{1,2}</p><p>13、 一年的12个月(01~09和1~12):</p><p>^(0?[1-9]|1[0-2])$</p><p>14 、一个月的31天(01~09和1~31):</p><p>^((0?[1-9])|((1|2)[0-9])|30|31)$&nbsp;</p><p>15 、钱的输入格式:</p><p>16 、1.有四种钱的表示形式我们可以接受:&quot;10000.00&quot; 和 &quot;10,000.00&quot;, 和没有 &quot;分&quot; 的 &quot;10000&quot; 和 &quot;10,000&quot;:</p><p>^[1-9][0-9]*$&nbsp;</p><p>17、 2.这表示任意一个不以0开头的数字,但是,这也意味着一个字符&quot;0&quot;不通过,所以我们采用下面的形式:</p><p>^(0|[1-9][0-9]*)$&nbsp;</p><p>18 、3.一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:</p><p>^(0|-?[1-9][0-9]*)$&nbsp;</p><p>19 、4.这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分:</p><p>^[0-9]+(.[0-9]+)?$&nbsp;</p><p>20 、5.必须说明的是,小数点后面至少应该有1位数,所以&quot;10.&quot;是不通过的,但是 &quot;10&quot; 和 &quot;10.2&quot; 是通过的:</p><p>^[0-9]+(.[0-9]{2})?$&nbsp;</p><p>21、 6.这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:</p><p>^[0-9]+(.[0-9]{1,2})?$&nbsp;</p><p>22、 7.这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样:</p><p>^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$&nbsp;</p><p>23 、8.1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:</p><p>^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$&nbsp;</p><p>24 、备注:这就是最终结果了,别忘了&quot;+&quot;可以用&quot;*&quot;替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里</p><p>25 、xml文件:</p><p>^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$</p><p>26 、中文字符的正则表达式:</p><p>[\u4e00-\u9fa5]</p><p>27 、双字节字符:</p><p>[^\x00-\xff]</p><p>(包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))</p><p>28 、空白行的正则表达式:\n\s*\r (可以用来删除空白行)</p><p>29 、HTML标记的正则表达式:</p><p>&lt;(\S*?)[^&gt;]*&gt;.*?&lt;/\1&gt;|&lt;.*? /&gt; (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)</p><p>30 、首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)</p><p>31 、腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)</p><p>32 、中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)</p><p>33、 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)</p><p>```</p><p><br/></p>Wed, 24 Feb 2021 10:40:06 +0800青春飞扬http://www.veryecs.com/?id=4<p># php-beast 代码雷竞技苹果版下载扩展编译</p><p><br/></p><p>[TOC]</p><p><br/></p><p>------</p><p><br/></p><p>## 什么是php-beast?</p><p><br/></p><p>php-beast是一个PHP源码雷竞技苹果版下载的模块,其使用DES算法雷竞技苹果版下载,用户可以自定义雷竞技苹果版下载的key来雷竞技苹果版下载源代码,可以很好的保护你的代码。主要应用情景有:1) 代码放在虚拟主机上,有泄漏源码的危险。2) 商业保护,当项目需要收费时就可以雷竞技苹果版下载你的代码不被修改。</p><p><br/></p><p>项目地址:https://github.com/liexusong/php-beast</p><p><br/></p><p>##怎么安装php-beast扩展?</p><p><br/></p><p>```bash</p><p>$ wget https://github.com/liexusong/php-beast/archive/master.zip</p><p>$ unzip master.zip</p><p>$ cd php-beast-master</p><p>$ phpize</p><p>$ ./configure</p><p>$ ./configure --with-php-config=/www/server/php/72/bin/php-config</p><p><br/></p><p>$ sudo make &amp;&amp; make install</p><p>$ vim /www/server/php/72/etc/php.ini</p><p><br/></p><p>```</p><p>[beast]</p><p>extension=beast.so</p><p>beast.enable=On</p><p>beast.networkcard=&quot;eth0&quot;</p><p>beast.cache_size=20000</p><p>beast.log_file=/var/log/php-beast/php-beast.log</p><p>```</p><p><br/></p><p><br/></p><p>```</p><p>雷竞技一样的软件配置信息</p><p>```</p><p>#php -i|grep extension_dir</p><p><br/></p><p>#php -i|grep php.ini</p><p>```</p><p><br/></p><p>编译好之后修改`php.ini`配置文件, 加入配置项: `extension=beast.so`, 重启`php-fpm`</p><p><br/></p><p>&gt;温馨提示: 可以设置较大的缓存提高效率</p><p><br/></p><p>```</p><p>[beast]</p><p>beast.cache_size = 20000</p><p>```</p><p>我们可以使用beast_cache_status()函数来雷竞技一样的软件缓存的状态。&nbsp;</p><p><br/></p><p><br/></p><p>配置项</p><p><br/></p><p><br/></p><p>```</p><p>beast.cache_size = size</p><p>beast.log_file = &quot;path_to_log&quot;</p><p>beast.log_user = &quot;user&quot;</p><p>beast.enable = On</p><p>```</p><p><br/></p><p>支持模块</p><p>1. AES</p><p>2. DES</p><p>3. Base64</p><p><br/></p><p>&gt;注意</p><p>&gt;如果出现502错误,一般是由于GCC版本太低导致,请先升级GCC再安装本模块。</p><p><br/></p><p>##怎么雷竞技苹果版下载项目</p><p>###雷竞技苹果版下载方案1</p><p><br/></p><p>安装完 php-beast 后可以使用 tools 目录下的 encode_files.php 来雷竞技苹果版下载你的项目。使用 encode_files.php 之前先修改 tools 目录下的 configure.ini 文件,如下:</p><p><br/></p><p>```</p><p>; source path</p><p>src_path = &quot;&quot;</p><p><br/></p><p>; destination path</p><p>dst_path = &quot;&quot;</p><p><br/></p><p>; expire time</p><p>expire = &quot;&quot;</p><p><br/></p><p>; encrypt type (selection: DES, AES, BASE64)</p><p>encrypt_type = &quot;DES&quot;</p><p><br/></p><p>```</p><p><br/></p><p>```</p><p>D:\wwwroot\phpbeast\tools</p><p>```</p><p><br/></p><p><br/></p><p><br/></p><p>`src_path` 是要雷竞技苹果版下载项目的路径,`dst_path` 是保存雷竞技苹果版下载后项目的路径,`expire` 是设置项目可使用的时间 (expire 的格式是:`YYYY-mm-dd HH:ii:ss`)。`encrypt_type`是雷竞技苹果版下载的方式,选择项有:`DES、AES、BASE64`。 修改完 `configure.ini`文件后就可以使用命令 `php encode_files.php` 开始雷竞技苹果版下载项目。</p><p><br/></p><p>###雷竞技苹果版下载方案2</p><p><br/></p><p>使用beast_encode_file()函数雷竞技苹果版下载文件,函数原型如下:</p><p>beast_encode_file(string $input_file, string $output_file, int expire_timestamp, int encrypt_type)。</p><p><br/></p><p>```</p><p>1. $input_file: 要雷竞技苹果版下载的文件</p><p>2. $output_file: 输出的雷竞技苹果版下载文件路径</p><p>3. $expire_timestamp: 文件过期时间戳</p><p>4. $encrypt_type: 雷竞技苹果版下载使用的算法(支持:BEAST_ENCRYPT_TYPE_DES、BEAST_ENCRYPT_TYPE_AES)</p><p>```</p><p><br/></p><p>##制定自己的php-beast</p><p><br/></p><p>&gt;Key随机生成</p><p>&gt;KeePass软件,工具菜单,生成密码,使用样品生成:`\0\xhh, \0\xhh, \0\xhh, \0\xhh,`</p><p><br/></p><p>###修改雷竞技苹果版下载后的文件头结构</p><p>文件名:`php-beast\header.c`</p><p><br/></p><p>```cpp</p><p>char encrypt_file_header_sign[] = {</p><p><span style="white-space:pre"> </span>0xe8, 0x16, 0xa4, 0x0c,</p><p><span style="white-space:pre"> </span>0xf2, 0xb2, 0x60, 0xee</p><p>};</p><p>```</p><p>例如修改为:</p><p>```cpp</p><p><span style="white-space:pre"> </span>0x82, 0x26, 0xea, 0xba,</p><p>&nbsp; &nbsp; 0x59, 0x46, 0x1e, 0xa9</p><p>```</p><p>###修改aes雷竞技苹果版下载模块key</p><p>文件名:`php-beast\aes_algo_handler.c`</p><p>```cpp</p><p>static uint8_t key[] = {</p><p><span style="white-space:pre"> </span>0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,</p><p><span style="white-space:pre"> </span>0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c,</p><p>};</p><p>```</p><p>例如修改为:</p><p>```cpp</p><p>&nbsp; &nbsp; 0x7e, 0xe9, 0x2a, 0x32, 0x85, 0x6b, 0x9f, 0xf5,</p><p>&nbsp; &nbsp; 0x41, 0xc2, 0x95, 0x6c, 0xa2, 0x81, 0xcc, 0xc6,</p><p>```</p><p>###修改des雷竞技苹果版下载模块key</p><p>文件名:`php-beast\des_algo_handler.c`</p><p>```cpp</p><p>static char key[8] = {</p><p>&nbsp; &nbsp; 0x01, 0x1f, 0x01, 0x1f,</p><p>&nbsp; &nbsp; 0x01, 0x0e, 0x01, 0x0e,</p><p>};</p><p>```</p><p>例如修改为:</p><p>```cpp</p><p>&nbsp; &nbsp; 0xf6, 0xa1, 0x48, 0x72,</p><p>&nbsp; &nbsp; 0xed, 0x78, 0x2b, 0xdf,</p><p>```</p><p>###修改base64雷竞技苹果版下载模块key</p><p>文件名:`php-beast\base64_algo_handler.c`</p><p>```cpp</p><p>static const short base64_reverse_table[256] = {</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,</p><p><span style="white-space:pre"> </span>52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1,&nbsp; 0,&nbsp; 1,&nbsp; 2,&nbsp; 3,&nbsp; 4,&nbsp; 5,&nbsp; 6,&nbsp; 7,&nbsp; 8,&nbsp; 9, 10, 11, 12, 13, 14,</p><p><span style="white-space:pre"> </span>15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,</p><p><span style="white-space:pre"> </span>41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,</p><p><span style="white-space:pre"> </span>-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1</p><p>};</p><p>```</p><p><br/></p><p>###雷竞技一样的软件网卡信息</p><p>```bash</p><p>[root@localhost ~]# ip addr</p><p>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN qlen 1</p><p>&nbsp; &nbsp; link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00</p><p>&nbsp; &nbsp; inet 127.0.0.1/8 scope host lo</p><p>&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever</p><p>&nbsp; &nbsp; inet6 ::1/128 scope host&nbsp;</p><p>&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever</p><p>2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP qlen 1000</p><p>&nbsp; &nbsp; link/ether fa:16:3e:77:3f:d4 brd ff:ff:ff:ff:ff:ff</p><p>&nbsp; &nbsp; inet 10.10.0.233/24 brd 10.10.0.255 scope global dynamic eth0</p><p>&nbsp; &nbsp; &nbsp; &nbsp;valid_lft 35825sec preferred_lft 35825sec</p><p>&nbsp; &nbsp; inet6 fe80::f816:3eff:fe77:3fd4/64 scope link&nbsp;</p><p>&nbsp; &nbsp; &nbsp; &nbsp;valid_lft forever preferred_lft forever</p><p>```</p><p>网卡eth0地址:`fa:16:3e:77:3f:d4`</p><p><br/></p><p>###设置代码在指定机器上运行</p><p>文件名:`networkcards.c`</p><p>```cpp</p><p>#include &lt;stdlib.h&gt;</p><p><br/></p><p>/*</p><p>&nbsp;* Allow network card. if this list empty, this feature was closed!</p><p>&nbsp;*/</p><p><br/></p><p>char *allow_networkcards[] = {</p><p>&nbsp; &nbsp; &quot;fa:16:3e:77:3f:d4&quot;,</p><p>&nbsp; &nbsp; NULL,</p><p>};</p><p><br/></p><p>```</p><p>其中`fa:16:3e:77:3f:d4`为网卡地址。</p><p><br/></p><p>`php.ini`配置如下代码:</p><p>```</p><p>#linux</p><p>[beast]</p><p>extension=beast.so</p><p>beast.enable = On</p><p>beast.networkcard = &quot;eth0&quot;</p><p>;自定义php-beast模块可以使用的缓存</p><p>beast.cache_size = 20000</p><p><br/></p><p>#windows</p><p>[beast]</p><p>extension=beast</p><p>beast.cache_size = 20000</p><p>beast.log_file = &quot;D:/phpStudy/tmp/beast/php_beast.log&quot;</p><p>beast.log_user = &quot;administrator&quot;</p><p>beast.enable = On</p><p>```</p><p>如果是多张网卡,可以按如下添加:</p><p>```</p><p>beast.networkcard = &quot;eth0,eth1,eth2&quot;</p><p>```</p><p><br/></p><p>php-beast 有多个地方可以定制的,以下一一列出:</p><p><br/></p><p>1. 使用 header.c 文件可以修改 php-beast 雷竞技苹果版下载后的文件头结构,这样网上的解密软件就不能认识我们的雷竞技苹果版下载文件,就不能进行解密,增加雷竞技苹果版下载的安全性。</p><p><br/></p><p>2. php-beast 提供只能在指定的机器上运行的功能。要使用此功能可以在 networkcards.c 文件添加能够运行机器的网卡号,例如:</p><p>````</p><p>char *allow_networkcards[] = {</p><p><span style="white-space:pre"> </span>&quot;fa:16:3e:77:3f:d4&quot;,</p><p>&nbsp; &nbsp; NULL,</p><p>};</p><p>```</p><p><br/></p><p>这样设置之后,php-beast 扩展就只能在 fa:16:3e:08:88:01 这台机器上运行。另外要注意的是,由于有些机器网卡名可能不一样,所以如果你的网卡名不是 eth0 的话,可以在 php.ini 中添加配置项: beast.networkcard = &quot;xxx&quot; 其中 xxx 就是你的网卡名,也可以配置多张网卡,如:beast.networkcard = &quot;eth0,eth1,eth2&quot;。</p><p><br/></p><p>3. 使用 php-beast 时最好不要使用默认的雷竞技苹果版下载key,因为扩展是开源的,如果使用默认雷竞技苹果版下载key的话,很容易被人发现。所以最好编译的时候修改雷竞技苹果版下载的key,aes模块 可以在 aes_algo_handler.c 文件修改,而 des模块 可以在 des_algo_handler.c 文件修改。</p><p><br/></p><p>### Windows编译修改</p><p><br/></p><p>```</p><p>// $Id$</p><p>// vim:ft=javascript</p><p><br/></p><p>// If your extension references something external</p><p>ARG_WITH(&quot;beast&quot;, &quot;for beast support&quot;, &quot;yes,shared&quot;); //删除</p><p><br/></p><p>ARG_ENABLE(&quot;beast&quot;, &quot;enable beast support&quot;, &quot;yes,shared&quot;);&nbsp;</p><p>//修改为:ARG_ENABLE(&quot;beast&quot;, &quot;enable beast support&quot;, &quot;no&quot;);</p><p><br/></p><p><br/></p><p>ARG_ENABLE(&quot;beast-debug&quot;, &quot;enable beast debug mode&quot;, &quot;no&quot;);</p><p><br/></p><p>if (PHP_BEAST != &quot;no&quot;) {</p><p><span style="white-space:pre"> </span>if (PHP_BEAST_DEBUG != &quot;no&quot;) {</p><p><span style="white-space:pre"> </span>AC_DEFINE(&#39;BEAST_DEBUG_MODE&#39;, 1, &#39;Debug support in beast&#39;);</p><p><span style="white-space:pre"> </span>}</p><p><span style="white-space:pre"> </span></p><p><span style="white-space:pre"> </span>EXTENSION(&quot;beast&quot;, &quot;beast.c aes_algo_handler.c des_algo_handler.c base64_algo_handler.c beast_mm.c spinlock.c cache.c beast_log.c global_algo_modules.c header.c networkcards.c tmpfile_file_handler.c file_handler_switch.c shm.c&quot;, true);</p><p>}</p><p>```</p><p><br/></p><p>##开启debug模式</p><p><br/></p><p>可以在configure时加入 --enable-beast-debug 选项来开启debug模式。开启debug模式后需要在php.ini配置文件中加入配置项:beast.debug_path 和 beast.debug_mode。beast.debug_mode 用于指定是否使用debug模式,而 beast.debug_path 用于输出解密后的php脚本源码。这样就可以在 beast.debug_path 目录中看到php-beast解密后的源代码,可以方便知道扩展解密是否正确。</p><p><br/></p><p>##函数列表</p><p><br/></p><p>```</p><p>1. beast_encode_file(): 用于雷竞技苹果版下载一个文件</p><p>2. beast_avail_cache(): 获取可以缓存大小</p><p>3. beast_support_filesize(): 获取beast支持的最大可雷竞技苹果版下载文件大小</p><p>4. beast_file_expire(): 获取一个文件的过期时间</p><p>5. beast_clean_cache(): 清空beast的所有缓存(如果有文件更新, 可以使用此函数清空缓存)</p><p>```</p><p><br/></p><p>##编译php_beast扩展</p><p><br/></p><p>```</p><p>#下载源码</p><p>wget http://cn2.php.net/get/php-7.2.4.tar.bz2/from/this/mirror</p><p>#解压</p><p>tar jxvf php-7.2.4.tar.bz2</p><p>#如解压失败,未安装bz2解压程序</p><p>yum install bzip2</p><p><br/></p><p>```</p><p><br/></p><p><br/></p><p>##反馈与建议</p><p><br/></p><p>- VeryECS[官方网站][1]</p><p>- QQ群:239243332</p><p><br/></p><p>---------</p><p>感谢阅读这份帮助文档。</p><p><br/></p><p>[1]: http://www.veryecs.com</p><p><br/></p><p><br/></p><p><br/></p><p>http://www.zhaoyuanma.com/zym.html</p><p>http://www.xiongmaoi.com/php-source-encryption-extended-beast-php-use-tutorial.html</p><p><br/></p>Wed, 24 Feb 2021 10:39:21 +0800青春飞扬http://www.veryecs.com/?id=3<p># 优秀技术人的管理陷阱</p><p><br/></p><p>作者: 老方&nbsp; 来源: InfoQ&nbsp; 发布时间: 2018-02-24 14:11&nbsp; 阅读: 10183 次&nbsp; 推荐: 33&nbsp; &nbsp;原文链接&nbsp; &nbsp;[收藏]&nbsp;</p><p><br/></p><p>---------------------</p><p>[TOC]</p><p><br/></p><p>### 写在前面</p><p>  几乎每一位做软件开发的技术人,都听过类似这样的话,“30 岁以后,身体比不过 20 几岁的年轻人,需要转型做管理了”。这句话理解起来是没有问题的。的确年龄越大身体就越比不过自己 20 多岁的时候,拼体力不够,但拼经验也完全够资格去带领年轻的团队上战场搏杀了,不过这里面的“管理”一词,不单单是管人,我认为赋予了太多的内涵,之后我慢慢说道。</p><p>  另外也有相反的见解,认为可以把技术一直专心的做下去,不用过于担心。我觉得这种见解对大多数人来说不太适合。为什么说不适合呢?我觉得有些无法忽视的问题:</p><p>  </p><p>* 大部分技术人所处的行业服务是非常市场化的,只有极少数的技术人在研究、科研或者教育等领域在某个业务上需要常年深入而专注。市场化的服务是一个不断变化的过程,需要不断适应,所以做技术人就非常难在某一个比较狭窄的业务领域,或者某一项技术指标上保持多年的不变钻研。其实大多数优秀的技术人都是身经百战的老将,自己的成熟心智、经验历练和业务功底若能更好的展露出来,这就更需要赋予管理方面的职责。</p><p><br/></p><p>* 技术高度的攀登是在不断的好奇、冲动、不服输、成就感中驱动向上,这是骨子里的驱动力,绝不是物质刺激的外部力量所能带动。对内在驱动力不敏感的技术人,绝无可能做到优秀的。可问题就在于技术的山峰不是一座,而是一山更比一山高。当您在自己领域的山峰爬到顶的时候,留给您的只剩下无趣,看着其他同样高的山峰一样对您是无趣的。这时候您就不得不选择了,要重新审视自我和寻找新目标了,那么涉猎管理,可以获得更宽广的眼界,就可以更准的让自己找到另一座目标。</p><p><br/></p><p>* 只有达到技术上的高度,才有能力去肩负技术管理的职责。有些做技术的,在技术上没有建树,想转换到管理上碰碰运气。其实是行不通的,为什么会这样,涉及的内容就太多了,可以专开一篇文章来讲,这里就不多累述了,就简单一句话把,我从业多年,技术上不行的,没见过一个在技术管理上像样的,精益技术的心态与自信的缺失,就会很难驾驭优秀的技术人。所以技术管理领域对优秀技术人是有旺盛的需求。</p><p>  说了这么多用来论证的废话,还没有引出优秀技术人的管理陷阱在哪。现在开始罗嗦罗嗦吧:</p><p>### 陷阱一、容易成为老板的附庸</p><p>  这可能是大多优秀技术人不可避免的经历,尤其是在创业型的公司。因为受到赏识,善良的技术人对企业总有一种强烈的责任感,归属感,容易当家来对待,对于家人往往爱的付出是无限的。那么一开始走管理之路的技术人就特别容易夹在老板与基层中间,反倒是基层干部,本质利益还是和基层员工是一致的,没有太大的被挤压的痛苦。而离老板最近的技术管理者,背负着最痛苦的夹板气。我说的第一个问题就是心态和情绪的转换。这个状态下,怎么工作?总是在巨大的经营压力下,在激烈的思想斗争下,大多数技术管理者会倒向老板这一边,无条件的执行老板的命令和安排,那么您呢,就是一个被老板所利用的锋利的刀,伤人无数,自己也伤痕累累。不这么做,您就总是被指出坐错了位置,被斗,被雪藏,被封杀,真实上演一部宫斗剧。</p><p>  那么怎么避免这种痛苦呢,我对您的忠告是:企业不是家,只是一个互利的游戏场。对您来讲只有定位在您的利益和企业的利益一致的情况下,并使其最大化,这样对企业和个人才会持久和长远。要有所为,有所不为。老板在企业中扮演的就是无限逐利的野兽,这是老板的命,但一味迁就老板的原始欲望就会毁了企业;那么技术管理者首先是要驾驭这只野兽(可能老板们听起来很不爽),就是您的目标要是清晰的和有战略的,才能让老板知道自己的目标离达到还有多远。</p><p>  举个例子:老板说,我计划今年完成 5 个产品,推向市场,让大家加班,开始 996 吧,您怎么办?这也许是最常见的一种状态,您估计已经开始不好意思的跟团队经理们制定计划和讨价还价了。这种发展的趋势最终老板发现自己不但全年计划没有完成,而且已经做的项目一个比一个烂。再反观基层呢,骂娘呗,觉得这个公司不是人开的,做的东西都跟坨翔一样,销售各个都是催命的蠢货,还能把产品卖的出去?</p><p>  其实问题就出在技术管理者的身上,您的职责没有尽到。我给您的建议是,手上一定要有两个致命武器:一个是公司产品发展的主航线是什么?另一个是研发能力和资源的统筹能力。当老板提出 5 个产品年计划的时候,先看看从战略上讲,离主航向偏离有多远,这就需要获取更多的信息,要培养战略眼光,若计划离主航线太远的据理力争,不远不近的放缓再议,离最近的深入讨论;统筹能力就是您与老板在具体的计划安排上做博弈,带了多少粮,咱就走多远的路,要有做一个项目,就成一个项目的基调。等完成这些工作后,您和老板之间才能达到一个共同利益的目标,就可以合理的聚焦目标和精力的去执行更具体的安排。</p><p>  </p><p>### 陷阱二、技术之路不进则退</p><p>  </p><p>  优秀的技术人转型管理后最茫然的结局就是跟不上技术发展的时代。当您看到这里的时候,审视一下自己,有多久没碰 IDE 了,有多久没上过 github 了。有很多技术管理者走了很久的路,当跳槽的那时候,才发现自己最被企业关注的还是技术能力。也许您当下的企业真的对您的技术能力没有那么高的需求,更多的是需要您的协调、管理或者业务方面的能力,但当您理解企业就是一个游戏的舞台时,您就会明白舞台总有落幕的那刻,您总有更换舞台的时候,下一场戏您还能顺利的登台吗。另外当没有技术驱动力的时候,您会觉得工作上会很无趣,觉得每天就像是虚度光阴。</p><p>  导致这个问题的主要因素就是管理的工作是碎片化的,这就带出了我对管理内涵的理解,例如:您对技术人员的关注、使用和提拔,您对项目的业务理解、需求理解,您不断的制定计划安排,您与客户的沟通与服务,您与商务、人事等其他部门的支撑与协调,您面对重大突发事件的应急处置等等,我都视之为技术管理的工作范围。这些事情呈现给您是碎片化的,您很难有连续的成块的时间,您总是在焦虑和压力中应对各种变数。如果兼顾技术的发展,就需要有成块的时间和相对平和的心情,这对您来讲,真的好难。</p><p>  所以我给您的一个建议:首先心态上绝不能放弃,闲暇时多看书是最好的调节方式。把碎片化的管理工作连接起来处理,给自己创造成块的时间(这个需要个人不断在经验中摸索),在您所管理的研发中,一定有一些非常具有挑战的技术需求,不要贪多,找准一个点,适当的身份参与进来,帮助团队去解决这一个点的难题。这个难点往往不会重复占用您太多时间,往往还会带出来很多必要的对新知识的快速学习和了解,这恰恰是您最擅长的地方,攻破难点即可,留给团队去最终完成产品的开发封装。这不仅让您的技术能力在完善,而且还能给团队带来很强的支撑并了解团队内在的很多微妙的因素,同时也能让您对新事物始终保持一个敏感的状态,可以更好的影响企业寻找更有效率的研发路线。</p><p>### 陷阱三、拿钱还是拿股份</p><p>  其实这是个很有趣的陷阱,我相信很多优秀的技术人都曾经被许诺过或已经得到那些原始股了吧。我也相信大多数优秀的技术人都不是炒股的高手,还不懂得股份的真正含义。香港证券最近更新了规定,可以同股不同权,您公司的董事会或者老板能给您这么大优惠吗?我认为不可能的。若您拿到了股份的零头,那么对您来讲股份就是投资,不具备股权的意义,也就是不要把在公司有股份和您有多大的执行力挂钩。若是投资,就证明您看好这家公司,您也有闲钱,拿出一点投到公司就当买股票了,没有问题。若给您的是技术股,但不能实现分红或者升值变现的可能,那么等同于被套,别太当回事。持股最合理的时机,就是公司打算进入股票交易市场;或您的股票在一定时期可以兑现;或您的公司每年有着持续的利润增长,同时董事会每年对股东不薄。</p><p>  其实大多数情况不是这样的,都是老板用股份做成的大饼而已。拿不到个零头,还是老板一言堂。需要您卖力的时候您是股东,创始人团队成员得承担您职责范围之外的很多事情;提待遇的时候,因为您还是股东,老板会说董事会不会同意创始人团队有太高的薪水。因此股份往往对您带来的负面影响不得不去深思,我的建议:跟老板谈您在企业管理的执行力和行业同等待遇即可,至于股份,相信我,别太惦记,尤其是原始股,人各有命,而且真等把公司做起来了,您的价值也完全展露的时候,配股的可能性会更大,也对您更具有实用价值。</p><p>### 陷阱四、狮子带着一群羊</p><p>  优秀的技术人转型管理最大的问题就是自己的专业能力太强了,这就会带来三种非常糟糕的陷阱:</p><p>  第一、自己光彩夺目,您的光环之下其他人等黯然失色。这对您的属下们带来的心理暗示是极强的,他们越是崇拜您,就越是依赖您。最终结果会导致您不再是领导者,而是救火队员,累死累活,生活暗淡无光。因此要懂得藏住光芒,多把责任和荣誉赋予团队中有贡献的人身上,根据团队处理问题的能力,由粗到细逐步探查每个人的能力上限,并要有耐心对待需要提升的成员。</p><p>  第二、也有很多人的做法是抓大放小,不去管具体的事情了,这样总不能说我影响团队发挥了吧,况且我的经验是可以估算出项目进展的,这种结局就是您最欣赏的人,会害您最深。因为您一定会把工作交给您最欣赏的一些人,您总是把他们当作您的化身,认为您能解决的事情,他们一定也能。而您欣赏的人,为了不影响您的信任,会隐藏很多您不知道的情况。因此事情的结局会让您不能相信怎么成了这样。所以我的建议还是:要理性的看贡献,既要把责任与荣誉交给有贡献的人,还有保持在具体的细节上的跟踪,由粗到细,看看您能在哪些具体的事情上,恰当的帮上忙。</p><p>  第三、很多情况是当您开始管理一支团队,就会抱怨这只团队能力怎么这么差,总有想踢掉某些人的冲动,可是团队成员不是说放弃就能放弃的,因为这里面涉及太多的公司政治问题,大多数结果都是您自己充满了负面情绪,或者与公司高层们闹得水火不容。因此要学会包容,您得时时刻刻要有颗包容的心,世界上没有完全符合心意的事,否则也不用找您了,要用时间和机会去充分理解他们的能力,要考虑怎么去让他们提高,什么是适合他们的工作内容,这才是您的关键工作。若有些人真的是态度也不好,也提不起来,就果断替换,安排他们到只能承担的岗位,当薪资和所干的事情不匹配的时候,自然老板就会出马的。</p><p>  说了好多了,希望能对打算技术转管理,或者已经转管理的优秀的您产生一点点启发。真心希望您能在技术管理这条路上越走越好!里面的观点不一定适用您的情况,也请海涵!</p><p>  作者介绍</p><p>  老方,就职于北京鸿果秋实科技有限公司,关注领域:技术管理、团队建设、创业。&nbsp;</p><p><br/></p>Wed, 24 Feb 2021 10:32:10 +0800