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正则的Unknown Modifier错误解决方法
Mar 02 PHP
php模板中出现空行解决方法
Mar 08 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
Jun 13 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
基于php判断客户端类型
Oct 14 PHP
PHP设置images目录不充许http访问的方法
Nov 01 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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新手上路(十)
2006/10/09 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
给Function做的OOP扩展
2009/05/07 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
vue3自定义dialog、modal组件的方法
2021/01/04 Vue.js
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
Python 逐行分割大txt文件的方法
2017/10/10 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
python实战教程之自动扫雷
2018/07/13 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
你对IPv6了解程度
2016/02/09 面试题
退休感言
2014/01/28 职场文书
出纳员岗位责任制
2014/02/11 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
python运行脚本文件的三种方法实例
2022/06/25 Python