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 相关文章推荐
How do I change MySQL timezone?
Mar 26 PHP
php 过滤器实现代码
Aug 09 PHP
深入分析php中接口与抽象类的区别
Jun 08 PHP
php中异常处理方法小结
Jan 09 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
php日期操作技巧小结
Jun 25 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 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使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
php面向对象值单例模式
2016/05/03 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
浅谈React高阶组件
2018/03/28 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
Python常用模块介绍
2014/11/21 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
浅谈Python NLP入门教程
2017/12/25 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Python爬取梨视频的示例
2021/01/29 Python
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
物流司机岗位职责
2013/12/28 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
中专自我鉴定
2014/02/05 职场文书
加入学生会演讲稿
2014/04/24 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
导游词书写之黄山
2019/08/06 职场文书
五年级作文之劳动作文
2019/11/12 职场文书