zoukankan      html  css  js  c++  java
  • php-简单对称加密算法和字符串与十六进制之间的互转函数

     1 <?php
     2 /**
     3 * 简单对称加密算法之加密
     4 * @param String $string 需要加密的字串
     5 * @param String $skey 加密EKY
     6 * @return String
     7 */
     8 function encode($string = '', $skey = 'testphp') {
     9   $skey = str_split(base64_encode($skey));
    10   $strArr = str_split(base64_encode($string));
    11   $strCount = count($strArr);
    12   foreach ($skey as $key => $value) {
    13     $key < $strCount && $strArr[$key].=$value;
    14   }
    15   return str_replace('=', 'O0O0O', join('', $strArr));
    16 }
    17 
    18 /**
    19 * 简单对称加密算法之解密
    20 * @param String $string 需要解密的字串
    21 * @param String $skey 解密KEY
    22 * @return String
    23 */
    24 function decode($string = '', $skey = 'testphp') {
    25   $skey = str_split(base64_encode($skey));
    26   $strArr = str_split(str_replace('O0O0O', '=', $string), 2);
    27   $strCount = count($strArr);
    28   foreach ($skey as $key => $value) {
    29     $key < $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
    30   }
    31   return base64_decode(join('', $strArr));
    32 }
    33 
    34 //字符串转换成16进制
    35 function str2hex($str, $encoded = 'GBK') {
    36   $hex = '';
    37   if ($encoded == 'GBK') {
    38     $str = mb_convert_encoding($str, 'GBK', 'UTF-8');
    39   }
    40   for ($i = 0, $length = mb_strlen($str); $i < $length; $i++) {
    41     $hex .= dechex(ord($str{$i}));
    42   }
    43   return $hex;
    44 }
    45 
    46 //16进制转换成字符串
    47 function hex2str($hex, $encoded = 'GBK') {
    48   $str = '';
    49   $arr = str_split($hex, 2);
    50   foreach ($arr as $bit) {
    51     $str .= chr(hexdec($bit));
    52   }
    53   if ($encoded == 'GBK') {
    54     $str = mb_convert_encoding($str, 'UTF-8', 'GBK');
    55   }
    56   return $str;
    57 }
  • 相关阅读:
    换装WIN10(windows)那点儿事,换装操作系统一文通,玩转安装操作系统
    Win10永久版低价购买及激活工具使用说明
    Win10系统自带软件删除和恢复工具
    微软免费AI作文打分软件升级:雅思考研四六级都能用,还能查单词给替换
    扫描全能王 v5.13.0.20190916 去水印和广告版
    Vue组件
    vue自定义过滤器的创建和使用
    vue自定义指令的创建和使用
    vue的基础使用
    vue的概述
  • 原文地址:https://www.cnblogs.com/luojianqun/p/4399345.html
Copyright © 2011-2022 走看看