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+MySQL 制作简单的留言本
Nov 02 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
mysql,mysqli,PDO的各自不同介绍
Sep 19 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
PHP设计模式之命令模式的深入解析
Jun 13 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
PHP大文件切割上传功能实例分析
Jul 01 PHP
PHP 数组操作详解【遍历、指针、函数等】
May 13 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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
jQuery仿Flash上下翻动的中英文导航菜单实例
2015/03/10 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
Python实现将xml导入至excel
2015/11/20 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
在python中安装basemap的教程
2018/09/20 Python
Python匿名函数及应用示例
2019/04/09 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
深入学习python多线程与GIL
2019/08/26 Python
基于python实现从尾到头打印链表
2019/11/02 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
戴尔英国官网:Dell英国
2017/05/27 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
《检阅》教学反思
2016/02/22 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
浅谈JavaScript作用域
2021/12/06 Javascript
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript