PHP字符串和十六进制如何实现互相转换


Posted in PHP onJuly 16, 2020

今天在做项目中,因为要调用别人网站的接口,结果需要对请求和返回的时间进行十六进制加密处理,于是在网上查了下资料谢了一个转换Demo做个记录。

如果在TP下使用可以将下面函数放到common.php中

一,加密函数

<?php
/**
 *字符串转十六进制函数
 *@pream string $str='abc';
 */
function strToHex($str) {
  $hex = "";
  for ($i = 0;$i < strlen($str);$i++) $hex.= dechex(ord($str[$i]));
  $hex = strtoupper($hex);
  return $hex;
}
?>

二、解密函数

<?php
/**
 *十六进制转字符串函数
 *@pream string $hex='616263';
 */
function hexToStr($hex) {
  $str = "";
  for ($i = 0;$i < strlen($hex) - 1;$i+= 2) $str.= chr(hexdec($hex[$i] . $hex[$i + 1]));
  return $str;
}
?>

加密 解密 转换 函数使用Demo事例,这里为了方便写在了一个类中。

<?php
class Test {
  /**
   *字符串转十六进制函数
   *@pream string $str='abc';
   */
  public function strToHex($str) {
    $hex = "";
    for ($i = 0;$i < strlen($str);$i++) $hex.= dechex(ord($str[$i]));
    $hex = strtoupper($hex);
    return $hex;
  }
  /**
   *十六进制转字符串函数
   *@pream string $hex='616263';
   */
  public function hexToStr($hex) {
    $str = "";
    for ($i = 0;$i < strlen($hex) - 1;$i+= 2) $str.= chr(hexdec($hex[$i] . $hex[$i + 1]));
    return $str;
  }
} < spanstyle = "white-space:pre" > < / span > //测试Demo效果
$test = new Test();
$str = '要加密的内容sxfenglei';
$data = $test->strToHex($str);
echo '加密内容:要加密的内容sxfenglei <br>' . $data . '<hr>';
$output = $test->hexToStr($data);
echo '解密内容:E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569 <br>' . $output;
?>

运行结果:

加密内容:要加密的内容sxfenglei
E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569
解密内容:E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569
要加密的内容sxfenglei

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
谈谈新手如何学习PHP
Dec 23 PHP
php 无限级缓存的类的扩展
Mar 16 PHP
php 截取字符串并以零补齐str_pad() 函数
May 07 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
Laravel 5框架学习之环境与配置
Apr 08 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
PHP在线书签系统分享
Jan 04 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 #PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 #PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 #PHP
PHP number_format函数原理及实例解析
Jul 14 #PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 #PHP
PHP基于array_unique实现二维数组去重
Jul 14 #PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 #PHP
You might like
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
php集成开发环境详解
2019/09/24 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
js word表格动态添加代码
2010/06/07 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
微信小程序自定义组件
2017/08/16 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
详解vue组件基础
2018/05/04 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
详解Vue中的自定义指令
2020/12/07 Vue.js
Python 文件管理实例详解
2015/11/10 Python
python中解析json格式文件的方法示例
2017/05/03 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
Python for循环与getitem的关系详解
2020/01/02 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
高中毕业自我鉴定
2013/12/16 职场文书
理想演讲稿范文
2014/05/21 职场文书
党的生日活动方案
2014/08/15 职场文书
贫困证明怎么写
2015/06/16 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
Golang并发操作中常见的读写锁详析
2021/08/30 Golang