当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-03-18 10:26:36 浏览: 评论:0 

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

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

一,加密函数

  1. <?php 
  2. /** 
  3.  *字符串转十六进制函数 
  4.  *@pream string $str='abc'; 
  5.  */ 
  6. function strToHex($str) { 
  7.   $hex = ""
  8.   for ($i = 0;$i < strlen($str);$i++) $hex.= dechex(ord($str[$i])); 
  9.   $hex = strtoupper($hex); 
  10.   return $hex
  11. ?> 

二、解密函数

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

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

  1. <?php 
  2. class Test { 
  3.   /** 
  4.    *字符串转十六进制函数 
  5.    *@pream string $str='abc'; 
  6.    */ 
  7.   public function strToHex($str) { 
  8.     $hex = ""
  9.     for ($i = 0;$i < strlen($str);$i++) $hex.= dechex(ord($str[$i])); 
  10.     $hex = strtoupper($hex); 
  11.     return $hex
  12.   } 
  13.   /** 
  14.    *十六进制转字符串函数 
  15.    *@pream string $hex='616263'; 
  16.    */ 
  17.   public function hexToStr($hex) { 
  18.     $str = ""
  19.     for ($i = 0;$i < strlen($hex) - 1;$i+= 2) $str.= chr(hexdec($hex[$i] . $hex[$i + 1])); 
  20.     return $str
  21.   } 
  22. } < spanstyle = "white-space:pre" > < / span > //测试Demo效果 
  23. $test = new Test(); 
  24. $str = '要加密的内容sxfenglei'
  25. $data = $test->strToHex($str); 
  26. echo '加密内容:要加密的内容sxfenglei <br>' . $data . '<hr>'
  27. $output = $test->hexToStr($data); 
  28. echo '解密内容:E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569 <br>' . $output
  29. ?> 

运行结果:

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

E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569

解密内容:E8A681E58AA0E5AF86E79A84E58685E5AEB9737866656E676C6569

要加密的内容sxfenglei

Tags: PHP字符串 PHP十六进制

分享到: