Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-einfacher symmetrischer Verschlüsselungsalgorithmus und Konvertierungsfunktion zwischen String und Hexadezimal

PHP-einfacher symmetrischer Verschlüsselungsalgorithmus und Konvertierungsfunktion zwischen String und Hexadezimal

WBOY
WBOYOriginal
2016-08-08 09:26:541139Durchsuche

/**
* Verschlüsselung eines einfachen symmetrischen Verschlüsselungsalgorithmus
* @param String $string Die zu verschlüsselnde Zeichenfolge
* @param String $skey Encryption EKY
* @return String
*/
function encode($string = '', $skey = 'textphp') {
  $skey = str_split(base64_encode($skey));
  $ strArr = str_split(base64_encode($string));
  $strCount = count($strArr);
  foreach ($skey as $key => $value) {
    $key < $strCount && $strArr[$key].=$value;
  }
  return str_replace('=', 'O0O0O', join('', $strArr));
}

/**
* Entschlüsselung eines einfachen symmetrischen Verschlüsselungsalgorithmus
* @param String $string Die zu entschlüsselnde Zeichenfolge
* @param String $skey Decryption KEY
* @return String
*/
function decode($string = '', $skey = 'textphp') {
  $skey = str_split(base64_encode($skey));
  $ strArr = str_split(str_replace('O0O0O', '=', $string), 2);
  $strCount = count($strArr);
  foreach ($skey as $key => $value) {
    $key < $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];
  }
  return base64_decode(join('', $strArr));
}

//字符串转换成16进制
function str2hex($str, $encoded = 'GBK') {
  $hex = '';
  if ($encoded == 'GBK' ) {
    $str = mb_convert_encoding($str, 'GBK', 'UTF-8');
  }
  for ($i = 0, $length = mb_strlen($str); $i < ; $length; $i ) {
    $hex .= dechex(ord($str{$i}));
  }
  return $hex;
}

//16进制转换成字符串
function hex2str($hex, $encoded = 'GBK') {
  $str = '';
  $arr = str_split($hex, 2 );
  foreach ($arr as $bit) {
    $str .= chr(hexdec($bit));
  }
  if ($encoded == 'GBK') {
    $str = mb_convert_encoding($str, 'UTF-8', 'GBK');
  }
  return $str;
}

以上就介绍了php-简单对称加密算法和字符串与十六进制之间的互转函数, 包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn