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 相关文章推荐
ip签名探针
Oct 09 PHP
PHP中使用数组实现堆栈数据结构的代码
Feb 05 PHP
php使用异或实现的加密解密实例
Sep 04 PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
PHP学习记录之数组函数
Jun 01 PHP
laravel接管Dingo-api和默认的错误处理方式
Oct 25 PHP
php+js实现点赞功能的示例详解
Aug 07 PHP
如何解决php-fpm启动不了问题
Nov 17 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 学习提高路线分享
2011/10/23 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
Python退火算法在高次方程的应用
2018/07/26 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
对Django中内置的User模型实例详解
2019/08/16 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
HTML5 Canvas的性能提高技巧经验分享
2013/07/02 HTML / CSS
易程科技软件测试笔试
2013/03/24 面试题
班长自荐书范文
2014/02/11 职场文书
企业法人授权委托书
2014/04/03 职场文书
企业形象策划方案
2014/05/29 职场文书
师范生求职自荐信
2014/06/14 职场文书
银行先进个人总结
2015/02/15 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
检讨书之工作不认真
2019/08/14 职场文书
MySQL 分组查询的优化方法
2021/05/12 MySQL
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL