本文将带您了解关于PHP短加密的新内容,同时我们还将为您解释php加密的相关知识,另外,我们还将为您提供关于PHPechovsPHP短标签、PhpSms稳定可靠的php短信发送库、PHP代码加密,ph
本文将带您了解关于PHP短加密的新内容,同时我们还将为您解释php 加密的相关知识,另外,我们还将为您提供关于PHP echo vs PHP短标签、PhpSms 稳定可靠的php短信发送库、PHP代码加密,php加密_PHP教程、PHP加密 php源代码在线加密工具推荐 -PHP代码加密解密系列第一章的实用信息。
本文目录一览:- PHP短加密(php 加密)
- PHP echo vs PHP短标签
- PhpSms 稳定可靠的php短信发送库
- PHP代码加密,php加密_PHP教程
- PHP加密 php源代码在线加密工具推荐 -PHP代码加密解密系列第一章
PHP短加密(php 加密)
我正在使用此代码:
$url = "http://www.webtoolkit.info/javascript-base64.html";
print base64_encode($url);
但是结果很长:“ aHR0cDovL3d3dy53ZWJ0b29sa2l0LmluZm8vamF2YXNjcmlwdC1iYXNlNjQuaHRtbA ==”
有没有一种方法可以将长字符串转换为短加密并能够转换?
例如:
new_encrypt("http://www.webtoolkit.info/javascript-base64.html")
Result: "431ASDFafk2"
解决方法:
编码未加密.如果您依赖于此来确保安全性,那么将来您将遭受非常讨厌的打击.
Base 64编码用于将8位宽的数据转换为可以通过使用6或7位的通信通道发送而不会丢失数据的格式.由于6位小于8位,因此编码字符串显然将比原始字符串更长.
PHP echo vs PHP短标签
他们的安全性是否相等?我被告知使用
<?=$function_here?>
安全性较低,并且会减慢页面加载时间。我严格偏向使用echo。
优点/缺点是什么?
PhpSms 稳定可靠的php短信发送库
可能是目前最聪明、优雅的PHP短信发送库了。从此不再为各种原因造成的个别短信发送失败而烦忧!
phpsms的任务均衡调度功能由toplan/task-balancer提供。
转载GitHub:https://github.com/toplan/phpsms
特点
- 支持发送均衡调度,可按代理器权重值均衡选择服务商发送。
- 支持语音验证码。
- 支持一个或多个备用代理器(服务商)。
- 允许推入队列,并自定义队列实现逻辑(与队列系统松散耦合)。
- 短信/语音发送前后钩子。
- 支持国内主流短信服务商。
- 自定义代理器和寄生代理器。
服务商
服务商 | 模板短信 | 内容短信 | 语音验证码 | 最低消费 | 最低消费单价 |
---|---|---|---|---|---|
Luosimao | × | √ | √ | ¥850(1万条) | ¥0.085/条 |
云片网络 | × | √ | √ | ¥55(1千条) | ¥0.055/条 |
容联·云通讯 | √ | × | √ | 充值¥500 | ¥0.055/条 |
SUBMAIL | √ | × | × | ¥100(1千条) | ¥0.100/条 |
云之讯 | √ | × | √ | -- | ¥0.050/条 |
聚合数据 | √ | × | √ | -- | ¥0.035/条 |
阿里大鱼 | √ | × | √ | -- | ¥0.045/条 |
SendCloud | √ | × | √ | -- | ¥0.048/条 |
安装
composer require ''toplan/phpsms:~1.6.0''
composer require ''toplan/phpsms:dev-master''
快速上手
1. 配置
- 配置代理器所需参数
为你需要用到的短信服务商(即代理器)配置必要的参数。可以在config\phpsms.php中键为agents的数组中配置,也可以手动在程序中设置,示例如下:
//example: Sms::config([ ''Luosimao'' => [ //短信API key ''apikey'' => ''your api key'', //语音验证API key ''voiceApikey'' => ''your voice api key'', ], ''YunPian'' => [ //用户唯一标识,必须 ''apikey'' => ''your api key'', ] ]);
- 配置代理器调度方案
可在config\phpsms.php中键为scheme的数组中配置。也可以手动在程序中设置,示例如下:
//example: Sms::scheme([ //被使用概率为2/3 ''Luosimao'' => ''20'', //被使用概率为1/3,且为备用代理器 ''YunPian'' => ''10 backup'', //仅为备用代理器 ''YunTongXun'' => ''0 backup'', ]);
调度方案解析: 如果按照以上配置,那么系统首次会尝试使用Luosimao或YunPian发送短信,且它们被使用的概率分别为2/3和1/3。 如果使用其中一个代理器发送失败,那么会启用备用代理器,按照配置可知备用代理器有YunPian和YunTongXun,那么会依次调用直到发送成功或无备用代理器可用。 值得注意的是,如果首次尝试的是YunPian,那么备用代理器将会只使用YunTongXun,也就是会排除使用过的代理器。
2. Enjoy it!
require(''path/to/vendor/autoload.php''); use Toplan\PhpSms\Sms; // 接收人手机号 $to = ''1828****349''; // 短信模版 $templates = [ ''YunTongXun'' => ''your_temp_id'', ''SubMail'' => ''your_temp_id'' ]; // 模版数据 $tempData = [ ''code'' => ''87392'', ''minutes'' => ''5'' ]; // 短信内容 $content = ''【签名】这是短信内容...''; // 只希望使用模板方式发送短信,可以不设置content(如:云通讯、Submail、Ucpaas) Sms::make()->to($to)->template($templates)->data($tempData)->send(); // 只希望使用内容方式放送,可以不设置模板id和模板data(如:云片、luosimao) Sms::make()->to($to)->content($content)->send(); // 同时确保能通过模板和内容方式发送,这样做的好处是,可以兼顾到各种类型服务商 Sms::make()->to($to) ->template($templates) ->data($tempData) ->content($content) ->send(); // 语音验证码 Sms::voice(''02343'')->to($to)->send(); // 语音验证码兼容模版语音(如阿里大鱼的文本转语音) Sms::voice(''02343'') ->template(''Alidayu'', ''your_tts_code'') ->data([''code'' => ''02343'']) ->to($to)->send();
3. 在laravel中使用
如果你只想单纯的在laravel中使用phpsms的功能可以按如下步骤操作, 当然也为你准备了基于phpsms开发的laravel-sms
- 在config/app.php中引入服务提供器
//服务提供器 ''providers'' => [ ... Toplan\PhpSms\PhpSmsServiceProvider::class, ] //别名 ''aliases'' => [ ... ''PhpSms'' => Toplan\PhpSms\Facades\Sms::class, ]
- 生成配置文件
php artisan vendor:publish
生成的配置文件为config/phpsms.php,然后在该文件中按提示配置。
- 使用
详见API,示例:
PhpSms::make()->to($to)->content($content)->send();
API
API - 全局配置
Sms::scheme([$name[, $scheme]])
设置/获取代理器的调度方案。
调度配置在调度系统启动后(创建Sms实例时会自动启动)就不能修改。
- 设置
手动设置代理器调度方案(优先级高于配置文件),如:
Sms::scheme([ ''Luosimao'' => ''80 backup'' ''YunPian'' => ''100 backup'' ]); //或 Sms::scheme(''Luosimao'', ''80 backup''); Sms::scheme(''YunPian'', ''100 backup'');
- 获取
通过该方法还能获取所有或指定代理器的调度方案,如:
//获取所有的调度方案: $scheme = Sms::scheme(); //获取指定代理器的调度方案: $scheme[''Luosimao''] = Sms::scheme(''Luosimao'');
scheme静态方法的更多使用方法见高级调度配置
Sms::config([$name[, $config][, $override]]);
设置/获取代理器的配置数据。
代理器参数配置在应用系统的整个运行过程中都是能修改的,这点和调度配置有所不同。
- 设置
手动设置代理器的配置数据(优先级高于配置文件),如:
Sms::config([ ''YunPian'' => [ ''apikey'' => ..., ] ]); //或 Sms::config(''YunPian'', [ ''apikey'' => ..., ]);
- 获取
通过该方法还能获取所有或指定代理器的配置参数,如:
//获取所有的配置: $config = Sms::config(); //获取指定代理器的配置: $config[''Luosimao''] = Sms::config(''Luosimao'');
Sms::cleanScheme()
清空所有代理器的调度方案,请谨慎使用该接口。
Sms::cleanConfig()
清空所有代理器的配置数据,请谨慎使用该接口。
Sms::beforeSend($handler[, $override]);
发送前钩子,示例:
Sms::beforeSend(function($task, $prev, $index, $handlers){ //获取短信数据 $smsData = $task->data; ... //如果返回false会终止发送任务 return true; });
更多细节请查看task-balancer的“beforeRun”钩子
Sms::beforeAgentSend($handler [, $override]);
代理器发送前钩子,示例:
Sms::beforeAgentSend(function($task, $driver, $prev, $index, $handlers){ //短信数据: $smsData = $task->data; //当前使用的代理器名称: $agentName = $driver->name; //如果返回false会停止使用当前代理器 return true; });
更多细节请查看task-balancer的“beforeDriverRun”钩子
Sms::afterAgentSend($handler [, $override]);
代理器发送后钩子,示例:
Sms::afterAgentSend(function($task, $result, $prev, $index, $handlers){ //$result为代理器的发送结果数据 $agentName = $result[''driver'']; ... });
更多细节请查看task-balancer的“afterDriverRun”钩子
Sms::afterSend($handler [, $override]);
发送后钩子,示例:
Sms::afterSend(function($task, $result, $prev, $index, $handlers){ //$result为发送后获得的结果数组 $success = $result[''success'']; ... });
更多细节请查看task-balancer的“afterRun”钩子
Sms::queue($enable, $handler)
该方法可以设置是否启用队列以及定义如何推送到队列。
$handler匿名函数可使用的参数:
- $sms : Sms实例
- $data : Sms实例中的短信数据,等同于$sms->getData()
定义如何推送到队列:
//自动启用队列 Sms::queue(function($sms, $data){ //define how to push to queue. ... }); //第一个参数为true,启用队列 Sms::queue(true, function($sms, $data){ //define how to push to queue. ... }); //第一个参数为false,暂时关闭队列 Sms::queue(false, function($sms, $data){ //define how to push to queue. ... });
如果已经定义过如何推送到队列,还可以继续设置关闭/开启队列:
Sms::queue(true);//开启队列 Sms::queue(false);//关闭队列
获取队列启用情况:
$enable = Sms::queue(); //为true,表示当前启用了队列。 //为false,表示当前关闭了队列。
API - 发送相关
Sms::make()
生成发送短信的sms实例,并返回实例。
$sms = Sms::make(); //创建实例的同时设置短信内容: $sms = Sms::make(''【签名】这是短信内容...''); //创建实例的同时设置短信模版: $sms = Sms::make(''YunTongXun'', ''your_temp_id''); //或 $sms = Sms::make([ ''YunTongXun'' => ''your_temp_id'', ''SubMail'' => ''your_temp_id'', ... ]);
Sms::voice()
生成发送语音验证码的sms实例,并返回实例。
$sms = Sms::voice(); //创建实例的同时设置验证码/语音文件ID $sms = Sms::voice($code);
- 如果你使用Luosimao语音验证码,还需用在配置文件中Luosimao选项中设置voiceApikey。
- 语音文件ID即是在服务商配置的语音文件的唯一编号,比如阿里大鱼语音通知的voice_code。
- 模版语音是另一种语音请求方式,它是通过模版ID和模版数据进行的语音请求,比如阿里大鱼的文本转语音通知。
$sms->to($mobile)
设置发送给谁,并返回实例。
$sms->to(''1828*******'');
$sms->template($templates)
指定代理器设置模版id或批量设置,并返回实例。
//设置指定服务商的模板id $sms->template(''YunTongXun'', ''your_temp_id'') ->template(''SubMail'', ''your_temp_id''); //一次性设置多个服务商的模板id $sms->template([ ''YunTongXun'' => ''your_temp_id'', ''SubMail'' => ''your_temp_id'', ... ]);
$sms->data($data)
设置模板短信的模板数据,并返回实例对象,$data必须为数组。
$sms->data([ ''code'' => $code, ''minutes'' => $minutes ]);
$sms->content($text)
设置内容短信的内容,并返回实例对象。一些内置的代理器(如YunPian,Luosimao)使用的是内容短信(即直接发送短信内容),那么就需要为它们设置短信内容。
$sms->content(''【签名】这是短信内容...'');
$sms->getData([$key])
获取Sms实例中的短信数据,不带参数时返回所有数据,其结构如下:
[ ''type'' => ..., ''to'' => ..., ''templates'' => [...], ''content'' => ..., ''templateData'' => [...], ''voiceCode'' => ..., ]
$sms->agent($name)
临时设置发送时使用的代理器(不会影响备用代理器的正常使用),并返回实例,$name为代理器名称。
$sms->agent(''YunPian'');
通过该方法设置的代理器将获得绝对优先权,但只对当前短信实例有效。
$sms->send()
请求发送短信/语音验证码。
//会遵循是否使用队列: $result = $sms->send(); //忽略是否使用队列: $result = $sms->send(true);
$result数据结构请参看task-balancer
高级调度配置
代理器的高级调度配置可以通过配置文件(config/phpsms.php)中的scheme项目配置,也可以通过scheme静态方法设置。 值得注意的是,高级调度配置的值的数据结构是数组。
指定代理器类
如果你自定义了一个代理器,类名不为FooAgent或者命名空间不为Toplan\PhpSms,那么你还可以在调度配置时指定你的代理器使用的类。
- 配置方式:
通过配置值中agentClass键来指定类名。
- 示例:
Sms::scheme(''agentName'', [ ''10 backup'', ''agentClass'' => ''My\Namespace\MyAgentClass'' ]);
寄生代理器
如果你既不想使用内置的代理器,也不想创建文件写自定义代理器,那么寄生代理器或许是个好的选择,无需定义代理器类,只需在调度配置时定义好发送短信和语音验证码的方式即可。
- 配置方式:
通过配置值中sendSms和voiceVerify键来设置发送短信和语音验证码的方式。
- 示例:
Sms::scheme([ ''agentName'' => [ ''20 backup'', ''sendSms'' => function($agent, $to, $content, $tempId, $tempData){ //获取配置(如果设置了的话): $key = $agent->key; ... //内置方法: Agent::sockPost(...); Agent::curl(...); ... //更新发送结果: $agent->result(Agent::SUCCESS, true); $agent->result(Agent::INFO, ''some info''); $agent->result(Agent::CODE, ''your code''); }, ''voiceVerify'' => function($agent, $to, $code, $tempId, $tempData){ //发送语音验证码,同上 } ] ]);
自定义代理器
- step 1
配置项加入到config/phpsms.php中键为agents的数组里。
//example: ''Foo'' => [ ''key'' => ''your api key'', ... ]
- step 2
新建一个继承Toplan\PhpSms\Agent抽象类的代理器类,建议代理器类名为FooAgent,建议命名空间为Toplan\PhpSms。 如果类名不为FooAgent或者命名空间不为Toplan\PhpSms,在使用该代理器时则需要指定代理器类,详见高级调度配置。
Change logs
v1.4.0
该系列版本相较与之前版本在api的设计上有些变动,具体如下:
-
修改原enable静态方法为scheme
-
修改原agents静态方法为config
-
修改原cleanEnableAgents静态方法为cleanScheme
-
修改原cleanAgentsConfig静态方法为cleanConfig
-
去掉getEnableAgents和getAgentsConfig静态方法
v1.5.0
- 改进语音信息的发送接口以适应阿里大鱼的通过文本转语音和语音文件id两个接口的需求
- 新加阿里大鱼(Alidayu)代理器
公告
- 如果在使用队列相关功能时出现如下错误:
Fatal error:Maximum function nesting level of ‘100′ reached, aborting!
可在/etc/php5/mods-available/xdebug.ini(Linux)中新加xdebug.max_nesting_level=500
Todo list
- 可用代理器分组配置功能;短信发送时选择分组进行发送的功能。
Encourage
hi, guys! 如果喜欢或者要收藏,欢迎star。如果要提供意见和bug,欢迎issue或提交pr。
License
MIT
PHP代码加密,php加密_PHP教程
php代码加密,php加密
// 源文件所在目录
$dir = "./tp/Home/Lib/Action/" ;
if ( $handle = opendir ( $dir )) {
while ( false !== ( $file = readdir ( $handle ))) {
if ( $file != "." && $file != ".." ) {
立即学习“PHP免费学习笔记(深入)”;
echo $file . ''
'' ;
// 去掉文件中的所有注释和空格
$newFile = php_strip_whitespace($dir . $file);
// 把去掉注释和空格的文件重新写入到NewAction文件夹中
file_put_contents(''./tp/Home/Lib/NewAction/'' . basename($file), $newFile);
}
}
closedir ( $handle );
}
?>
PHP加密 php源代码在线加密工具推荐 -PHP代码加密解密系列第一章
在我们开发的项目中,有一部分可能是用于商业用途,会部署在客户提供的机器环境中。因为 PHP 本身是解释型语言,所以未进行处理的代码,就会有泄露或被修改的风险。那么我们可能会想到最简单有效的方法就是进行PHP代码的加密,来保护我们的代码。
PHP在线加密工具地址:
操作步骤:
1、打开金柚工具箱:https://www.jinyoutool.com/ ,在搜索栏搜索:“PHP加密”
2、选择你需要的服务,上传自己的PHP代码,或者联系客服都可以实现加密服务
具体提供的加密方式有以下几种:
1. MD5加密
string md5 ( string $str [, bool $raw_output = false ] )
参数:
str -- 原始字符串。
raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。
2. Crype加密
string crypt ( string $str [, string $salt ] )
crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。
参数:
str -- 待散列的字符串。
salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。
3. Sha1加密
string sha1 ( string $str [, bool $raw_output = false ] )
参数:
str -- 输入字符串。
raw_output -- 如果可选的 raw_output 参数被设置为 TRUE,那么 sha1 摘要将以 20 字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字。
关于PHP短加密和php 加密的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于PHP echo vs PHP短标签、PhpSms 稳定可靠的php短信发送库、PHP代码加密,php加密_PHP教程、PHP加密 php源代码在线加密工具推荐 -PHP代码加密解密系列第一章等相关知识的信息别忘了在本站进行查找喔。
本文标签: