php加密解密类

<?php
class Aes{
private $key = '6b4d63211b4ba869';
private $iv = 'dbbf079b95004f65';
public function aes128_cbc_encrypt($data) {
$key = $this->key;
$iv = $this->iv;
if(16 !== strlen($key)) $key = hash('MD5', $key, true);
if(16 !== strlen($iv)) $iv = hash('MD5', $iv, true);
$padding = 16 - (strlen($data) % 16);
$data .= str_repeat(chr($padding), $padding);
return $this->encode_bytes(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv));
} public function aes128_cbc_decrypt($data) {
$key = $this->key;
$iv = $this->iv;
if(16 !== strlen($key)) $key = hash('MD5', $key, true);
if(16 !== strlen($iv)) $iv = hash('MD5', $iv, true);
$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $this->decode_bytes($data), MCRYPT_MODE_CBC, $iv);
$padding = ord($data[strlen($data) - 1]);
return substr($data, 0, -$padding);
} public function decode_bytes($text){
$bytes=array();
for($i=0;$i<strlen($text);$i+=2){
$char=$text[$i];
$bytes[$i/2]=chr((ord($char)-ord('a'))<<4);
$char=$text[$i+1];
$bytes[$i/2]=chr(ord($bytes[$i/2])+(ord($char)-ord('a')));
} return join('',$bytes);
} public function encode_bytes($text){
$bytes=array();
for($i=0;$i<strlen($text);$i++){
$bytes[]=chr(((ord($text[$i])>>4)&15)+ord('a'));
$bytes[]=chr((ord($text[$i]) & 15)+ord('a'));
} return join('',$bytes);
}
} $encrypted = 'ppmbnoahlffbpbjjhfegchdhjclbfpfaiopkmlflbohfphaagkndomcehakaopefmakbgenlomplmmpdmehffndpbmdmhgdaagddnhaifblckgendbajmjiafhcgpmjeabmbhaechabcadgpbcaiipcjmkdjidpnljhkedmghmepmmmkmcilpdaajcpdgkjknjlmfhmmdmeppdgppdamagokhjpmfggkkkcoihmaoakachkkomhjnienajiafojbbhfcohnjakcpneacofbmcdlfodhldhipipkbkghjiebejcahfcpoecbbdfmhdibodabhhklkjdgaljkhcffjkocahdkmchdhpegpgbapgcjdcigjchpjpogkgdaifaaipipccbmkeemhjecojohmcbfaacffgcfgidhhlijnminobnkjkphpdgkagpniimebjcfjlmaahllkpgplacbmlomajjilceffnfpljjaaddcpemjidpflenhjcjdebkcmbikfdjoefoallfnphflodmmbfinbfjhkbccgkppodahlnegdjmgliodhogmdelpiodogpkhahmjioojppmlikfkkkandkahdemccanfjlpikcccbhfkomdhlbndckeldlpdbnlngeclnjlleijlckpgleccbgbikjdlffcinkcknohdgejdhhnafmmagmcklekcalgehdgjnopfbclloolfpemdlaeigmibhgfpekdliebdjaekmbhclggkompigfddggmlnfgmaiehchlbjolmpnoddkihdfpfhpalbmgiilibooenngbbjblcbdleenhjcefnkdgmpbimhckgajlabljcjklfccmjncelphgggjilenhlnpjichiakijoohkppciblgnjdfpjlejglomdapccobblikhkbldffdljidbijblhfbdbglmihdhcclokagoolbpmlhagambeiphldgijnljkeibeaoofbniaifaambdidhchhomjndfmgffonbemboampjiolcndgnhhmnphofojpcnganphhfdmidmonmgbbafpfehigjmbjgdpkchjcodfiffmhladiockoaenljibmnadajdejanihgnohdagfennjkpepfmohemihojcehlephiegmmepaechepmpgejaafphnmkbnklldpliiadihdncdmobaodoghnpfopfejecglnmhhjlminmpfpbkjlhkegdioogefmoocbchnmkddcojjnhdalbcffmldfaihgpgncdjlnijeieddecdmhdoihoccfekcjgmpfhjpcfgdjbenkmmoknlobaihedjfgkonlglcbckpmgcgdeghjfefghhjfmnimhdpjejkelbofojeiloccdpmpembfpkdgignmkcopdganmmfjhhghbhghmflnldhhlaakijpggdbddiiamdnpljdobmckoaddlidiakepmbcfflineldjlefhdpdbmajmhcnnkcggombeonjheocojbhcjmfncdfjnlkibipkfjlbolcicgacdiebnchaafhjbiaalddcghpelbninjfcnbfmebkekbenliclimoknlpppgpkcbeaokfkgdafndepkbfjohdhdplmgpanamhimgkimmjpfcbcnbpjhglnpcfejkennjpieiceflbfbphgmdgkjliaaejgemfgmfiddcaecacfmdhmkdhblkijnandiddjobeelbahhhkaddffiphgnlmghjpdjbihcoekckfmkbokonoddfikaakaejaopekbhldpbmhhgdldjhbckjfjimccfchgnbcjpmiidiijkekijgcmgaoglimaoknmhgpghpjcodoblageapioildelbgibcdbfaiomcmlf'; $decrypt = '{"otaOrderId":"ctriptest-750476","sequenceId":"2019032816551049c5e34f57fc4a8ca9e4af8caf5b0ccb","confirmType":2,"items":[{"passengers":[{"cardIssuePlace":"","lastName":"","cardIssueCountry":"","shoeSize":0,"gender":"M","cardIssueDate":"","intlCode":"","nationalityName":"","mobile":"17600768354","cardType":"1","weight":0,"myopiaDegreeL":0,"birthDate":"1993-07-24","cardNo":"1301333199307243318","ageType":"ADU","myopiaDegreeR":0,"firstName":"","birthPlace":"","nationalityCode":"","name":"测试","cardValidDate":"","height":0}],"cost":0.00,"quantity":1,"remark":"这是备注","useEndDate":"2019-03-28","useStartDate":"2019-03-28","itemId":"ctriptest-750476-0","priceCurrency":"CNY","adjunctions":[],"price":49.00,"PLU":"472","deposit":{},"distributionChannel":"XCW","costCurrency":"HKD","expressDelivery":{"type":1}}],"contacts":[{"intlCode":"","name":"测试","mobile":"17600768354","optionalMobile":"","optionalIntlCode":"","email":"1450610915@qq.com"}]}'; $aec = new Aes();
//加密
echo $aec->aes128_cbc_decrypt($encrypted);
echo "<br>";
//解密
echo $aec->aes128_cbc_encrypt($decrypt);

对接携程供应商php加密解密类的更多相关文章

  1. [C#] 常用工具类——加密解密类

    using System; using System.Configuration; using System.Collections.Generic; using System.Text; using ...

  2. PHP针对数字的加密解密类,可直接使用

    <?phpnamespace app;/** * 加密解密类 * 该算法仅支持加密数字.比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密. * @author 深秋的竹子 *  ...

  3. Java常用的加密解密类(对称加密类)

    Java常用的加密解密类 原文转载至:http://blog.csdn.net/wyc_cs/article/details/8793198 原创 2013年04月12日 14:33:35 1704 ...

  4. 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间

    生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...

  5. java文本文件加密解密类

    原文:http://www.open-open.com/code/view/1420031154765 import java.awt.*; import java.awt.event.*; impo ...

  6. AES对称加密解密类

    import java.io.UnsupportedEncodingException; import javax.crypto.Cipher; import javax.crypto.spec.Se ...

  7. 推荐分享一个牛X的自定义PHP加密解密类

    通俗点说,用它来进行加密,同一个字符串,每次进行加密,得出的结果都是不一样的,大大加强了数据安全性.同时还可设定加密后数据的有效期,简直牛掰了 #食用方法 将下面的第二份模块代码保存为 Mcrypt. ...

  8. 一个java的DES加密解密类转换成C#

    一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.P ...

  9. PHP加密解密类

    <?php class Mypass { static function encrypt($data, $key){ $key = md5($key); $x = 0; $len = strle ...

随机推荐

  1. Codeforces Round #554 (Div. 2) B. Neko Performs Cat Furrier Transform(思维题+log2求解二进制位数的小技巧)

    传送门 题意: 给出一个数x,有两个操作: ①:x ^= 2k-1; ②:x++; 每次操作都是从①开始,紧接着是② ①②操作循环进行,问经过多少步操作后,x可以变为2p-1的格式? 最多操作40次, ...

  2. 转载:curl 模拟请求

    一般情况下我们会在网页上请求后台接口,但是对于需要进行多次测试的人来说,每一次都要在网页上模拟请求,是存在很大局限性的.因此,我们需要学会模拟请求,以达到跟实际请求一样的效果. 1. curl的用法 ...

  3. Django web编程2 -- 编辑页面内容

    你将创建一些表单,让用户能够添加主题和条目,以及编辑既有的条目.你还将学习Django如何防范对基于表单的网页发起的常见攻击,这让你无需花太多时间考虑确保应用程序安全的问题. 然后,我们将实现一个用户 ...

  4. HBase 在HDFS上的物理目录结构

    根目录 配置项 hbase.rootdir 默认 "/hbase" 根级文件 /hbase/WALs 被HLog实例管理的WAL文件. /hbase/WALs/data-hbase ...

  5. 2018-2019-2 《Java程序设计》第7周学习总结

    20175319 2018-2019-2 <Java程序设计>第7周学习总结 教材学习内容总结 本周学习<Java程序设计>第8章: 1.String类: Java专门提供了用 ...

  6. json 格式化的时候,日期格式化

    public class CustomIsoDateTimeConverter : IsoDateTimeConverter { public CustomIsoDateTimeConverter() ...

  7. python-类对象以字典模式操作

    #类对象以字典模式操作 class Person: def __init__(self): self.cache={} def __setitem__(self, key, value): #增加或修 ...

  8. andriod webview和h5

    1.WebBrowserActivity extends BaseActivity 2.setContentView(R.layout.activity_web_html); <WebView ...

  9. mina statemachine解读(一)

      statemachine(状态机)在维护多状态数据时有非常好的作用,现在github上star排名最前的是squirrel-foundation以及spring-statemachine,而min ...

  10. CVE-2018-19386:SolarWinds数据库性能分析器中反射的XSS

    漏洞 在SolarWinds的11.1.457版中,"idcStateError.iwc"错误页面中存在Reflected Cross-Site Scripting漏洞,已经在版本 ...