PHP字符串和十六进制如何实现互相转换
今天在做项目中,因为要调用别人网站的接口,结果需要对请求和返回的时间进行十六进制加密处理,于是在网上查了下资料谢了一个转换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将字符串转换为数组 在php中通过使用"explode函数",将字符串转换为数组,该函数的用法为"explode(delimiter,string)",其参数delimiter表示为边界上的分隔字符,参数string表示为输入的字符串. explode说明 explode ( string $delimiter , string $string [, int $limit ] ) : array 此函数返回由字符串组成的数组,每个元素都是 string 的一个
-
PHP 通过Socket收发十六进制数据的实现代码
最近在php下做关于Socket通讯的相关内容,发现网络上好多人在了解如何进行16进制收发,研究了下,代码如下,欢迎拍砖. 复制代码 代码如下: <?php $sendStr = '30 32 30 34 03 30 33'; // 16进制数据 $sendStrArray = str_split(str_replace(' ', '', $sendStr), 2); // 将16进制数据转换成两个一组的数组 $socket = socket_create(AF_INET, S
-
php生成随机数/生成随机字符串的方法小结【5种方法】
本文实例讲述了php生成随机数/生成随机字符串的方法.分享给大家供大家参考,具体如下: 有时候我们的项目需要生成随机数,但是又不想那么麻烦,那么我们可以使用下面这5种方法生成. 第一种:mt_rand() <?php function GetRandStr($length){ //字符组合 $str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $len = strlen($str)-1; $randstr
-
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
有时候我们在开发中会遇到这样一种情况,例如:显示手机号我们需要将中间4位遮挡掉,一般使用"*"号代替,或是显示身份证号码是为了保护个人信息也同样需要遮挡掉4位,故可用到下列方式.代码进行实现: 核心代码 <?php /** +---------------------------------------------------------- * 将一个字符串部分字符用*替代隐藏 +--------------------------------------------------
-
php字符串截取函数mb_substr用法实例分析
本文实例讲述了php字符串截取函数mb_substr用法.分享给大家供大家参考,具体如下: string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )-截取字符串 (PHP 4 >= 4.0.6, PHP 5) $str 要获取字符串的目标字符串(字符串起始位置为0) $start,$str中要使用的第一个字符的位置 $len
-
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
一,十进制(decimal system)转换函数说明 1,十进制转二进制 decbin() 函数,如下实例 echo decbin(12); //输出 1100 echo decbin(26); //输出 11010 decbin (PHP 3, PHP 4, PHP 5) decbin -- 十进制转换为二进制 说明 string decbin ( int number ) 返回一字符串,包含有给定 number 参数的二进制表示.所能转换的最大数值为十进制的 4294967295,其结果为
-
PHP生成随机字符串实例代码(字母+数字)
当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度 function randomkeys($length) { $pattern = '1234567890abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLOMNOPQRSTUVWXYZ; for($i=0;$i<$length;$i++) { $key .= $pattern{mt_rand(0,35)}
-
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
本文实例讲述了php常用字符串长度函数strlen()与mb_strlen()用法.分享给大家供大家参考,具体如下: int strlen ( string $string ) int strlen ( string $string ) 获取给定字符串的[字节]长度 成功则返回字符串$string的长度,如果$string为空,则返回 0. <?php $str1 = "abcdef"; //输出6 $str2 = " ab cd "; //输出7,注意,开
-
PHP字符串和十六进制如何实现互相转换
今天在做项目中,因为要调用别人网站的接口,结果需要对请求和返回的时间进行十六进制加密处理,于是在网上查了下资料谢了一个转换Demo做个记录. 如果在TP下使用可以将下面函数放到common.php中 一,加密函数 <?php /** *字符串转十六进制函数 *@pream string $str='abc'; */ function strToHex($str) { $hex = ""; for ($i = 0;$i < strlen($str);$i++) $hex.=
-
Android字符串和十六进制相互转化出现的中文乱码问题
废话不读说了,直接给大家贴代码了,代码附有注释,可以说明一切,本文写的不好,还请见谅. import java.io.ByteArrayOutputStream; /** * Created by Administrator on 2016/2/2. * -----------16进制和字符串互转--------- * ------------解决中文乱码问题--------- */ public class StringToSixthUtils { private static String
-
C++中字符串与整型及浮点型转换全攻略
目录 一.string 和 char [] 1. string 转 char [] 2. char [] 转 string 二.char [] 与数字互转 1. char [] 转整型和浮点型 2. 整型和浮点型 转char [] 3. 整型转 char [] (特殊函数实现) 首先请出今日主角:stdlib.h (YYDS) 这个库包含有随机数,abs等许多通用函数,当然也有类型的转换 下面我们一点点来看如何完成格式转换 一.string 和 char [] 1. string 转 char
-
javascript实现的字符串与十六进制表示字符串相互转换方法
本文实例讲述了javascript实现的字符串与十六进制表示字符串相互转换方法.分享给大家供大家参考.具体如下: 之所以写这个,是因为发现SQL注入和XSS中经常利用十六进制表示的字符串,比如 SELECT CONCAT(0x68656c6c6f); 得到的是hello <!DOCTYPE html> <html> <head> <title>Hex-Char Bi-Converter</title> </head> <body
-
C#实现字符串与图片的Base64编码转换操作示例
本文实例讲述了C#实现字符串与图片的Base64编码转换操作.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Drawing
-
浅谈MySql整型索引和字符串索引失效或隐式转换问题
目录 问题概述 问题重现 问题引申 结论 问题概述 今天在上班时,DBA突然找出来一段sql,表示该sql存在隐式转换,不走索引.经过我们的查看后,发现是类型varchar的字段, 我们使用条件传入了数值型的值,由于担心违反保密协议,在此就不贴图了,由我重现一下类似情况给大家看一下. 问题重现 首先我们先创建一张用户表test_user,其中USER_ID为了效果我们设置为varchar类型且加上唯一索引. CREATE TABLE test_user ( ID int(11) NOT NULL
-
详解MySQL如何有效的存储IP地址及字符串IP和数值之间如何转换
在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串.但是没有给出具体原因.为了搞清楚这个原因,查了一些资料,记录下来. 相对字符串存储,使用无符号整数来存储有如下的好处: 节省空间,不管是数据存储空间,还是索引存储空间 便于使用范围查询(BETWEEN...AND),且效率更高 通常,在保存IPv4地址时,一个IPv4最小需要7个字符,最大需要15个字符,所以,使用VARCHAR(15
-
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
本文实例总结了php常用字符串String函数.分享给大家供大家参考,具体如下: nl2br 功能:化换行符为<br> <?php $str = "cat isn't \n dog"; $result = nl2br($str); echo $result; /**结果 cat isn't dog */ rtrim 功能:清除右边的空白 <?php $str = "Hello world "; echo strlen($str)."
-
C# 16进制与字符串、字节数组之间的转换
复制代码 代码如下: /// <summary> /// 字符串转16进制字节数组 /// </summary> /// <param name="hexString"></param> /// <returns></returns> private static byte[] strToToHexByte(string hexString) { hexString = hexString.Replace(&quo
-
字符串和十六进制之间的转换方法实例
复制代码 代码如下: /// <summary> /// <函数:Encode> /// 作用:将字符串内容转化为16进制数据编码,其逆过程是Decode /// 参数说明: /// strEncode 需要转化的原始字符串 /// 转换的过程是直接把字符转换成Unicode字符,比如数字"3"-->0033,汉字"我"-->U+6211 ///
随机推荐
- mytop 使用介绍 mysql实时监控工具
- JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
- jdbc链接远程数据库进行修改url操作
- JScript实现表格的简单操作
- 超过了脚本运行的最长时间..Server.ScriptTimeOut 属性指定新值
- iOS 获取设备唯一标示符的方法详解
- Python正则表达式使用范例分享
- 如何高效率去掉js数组中的重复项
- JSP 开发之THE SERVLET NAME ALREADY EXISTS.解决方法
- 需灵活掌握的Bootstrap预定义排版类 你精通吗?
- 原生js与jQuery实现简单的tab切换特效对比
- VBS实现的系统服务备份优化代码
- JavaScript中的toLocaleLowerCase()方法使用详解
- MSsql每天自动备份数据库并每天自动清除log的脚本
- sql 取代游标的写法示例
- Android实现字母雨的效果
- java并发学习之BlockingQueue实现生产者消费者详解
- node.js通过axios实现网络请求的方法
- 第一次构建、运行、发布、获取docker镜像的步骤详解
- CentOS7.3下mysql 8.0.13安装配置方法图文教程