<?php
/**
* 3des加密
*/
class Encrypt{
public function pkcs5_pad($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
} public function pkcs5_unpad($text) {
$pad = ord($text{strlen($text) - 1});
if ($pad > strlen($text)){
return false;
}
return substr($text, 0, -1 * $pad);
}      
/**
* 加密
* @param $key
* @param $input
* @return string
*/
public function des3Encryption($key,$input){
$input = $this->pkcs5_pad($input,8);
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$en_res = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return $en_res;
} /**
* 解密
* @param $key
* @param $crypt
* @return string
*/
public function des3Decrypt($key, $crypt){
$crypt = base64_decode($crypt);
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$decrypted_data = mdecrypt_generic($td, $crypt);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$decrypted_data = $this->pkcs5_unpad($decrypted_data);
return rtrim($decrypted_data);
} } $obj = new Encrypt(); $key = "9oyKs7cVo1yYzkuisP9bhA==";
$input = '123456'; $enc_res = base64_encode($obj->des3Encryption($key,$input));
echo $enc_res; $crypt = 'KkljLXJH9jnUg4+UyiPjzsmohuAxRTi0Iybiub47dTySoEqIK2NKg/LgKzhXWRc3Eken0YW09xcApE6kJEUfoEIsrAWnsnSCeZjr62quFEMv51BlE7RmUALXIta+P3aVRl5D6fg+xpeIgsJAY9kkhmLmdQmbvB3hMqwF/Gh7X6ZYGr7dHo4DfjNFiHaSUnDQ6s8ik1I+ye85rr2uWIZ/yPuvrRuTw05+gFe1z01v/kWzVLfKXmsxZOrPIpNSPsnv+08mckR2nsNT8ljOr9ggcDQovf3FgybIw3w2OraFKhnrOebzsGV0Wt5gwesKGbg8s6wam1d8qGLxLyUno74iLNRa/Kaz6LjoKWmMmpol1pEDQnM/UNCKc3Sdp34yenHj1Fr8prPouOgVBMTlBqWLtrDTl1R6apVi+ZUOnw/cKexsmJiCsHEAHK7oy6vj/44R1QGg6H8mF5tPIfZtvp8e2i+l0eC4yveATbjJ7LcZ4+qAEbveQC8x/eix3PBjmhYeKANzeJqNEflTuvIHQIQWuKeT9Vw0nFrR3Dt+MBQrsMV/lWs1H3w4NrgQdQEtR/7L2wxNR2tMHM64EHUBLUf+y6+VuMP83CbwQurJQ6l0LGSKAunFwvRbJM5CYrr8qIitU/JTokRlYdPl0yDuNqjqyQe9nS8WymTachpKe1ZmP6jIOu6rxeC0F6qI0ZH/KagceLZRBiz/R7Bf3sT15jsfqBfSiXwSROhvsa2PsLRoFz8i4eMTiLfbu0xP+Mrs65coYec+gMJK7hzpQnc5I/UJjSmjL9slAVpJc74hRGJ3dwlV/zmnmZeyeQzX3qsF3rMnopsHrYLniK+Xu/Cwl7G55Su1pGekbno2'; $desc_res = $obj->des3Decrypt($key,$crypt); echo '<pre>';
echo $desc_res; ?>
  

  

PHP实现 3des加密解密的更多相关文章

  1. iOS 3DES加密解密(一行代码搞定)

    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...

  2. 简进祥==iOS 3DES加密解密

    3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称.它相当于是对每个数据块应用三次DES加密算法.由于计 ...

  3. C# Java 3DES加密解密 扩展及修正\0 问题

    注: C#已亲测及做扩展, Java 部分未做验证 /// <summary> /// 3DES加密解密 /// ------------------------------------- ...

  4. 【推荐】JAVA基础◆浅谈3DES加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. 3DES加密解密

    C#3DES加密解密,JAVA.PHP可用 using System; using System.Security.Cryptography; using System.Text; namespace ...

  6. Des与3Des加密解密

    /// <summary> /// Des和3Des算法 /// </summary> public class Des { /// <summary> /// D ...

  7. C#的3DES加密解密算法

    C#类如下: using System; using System.Collections.Generic; using System.Text; using System.Security.Cryp ...

  8. JAVA和C# 3DES加密解密

    最近 一个项目.net 要调用JAVA的WEB SERVICE,数据采用3DES加密,涉及到两种语言3DES一致性的问题, 下面分享一下, 这里的KEY采用Base64编码,便用分发,因为Java的B ...

  9. JAVA安卓和C# 3DES加密解密的兼容性问题(2013年8月修改版)

    近 一个项目.net 要调用JAVA的WEB SERVICE,数据采用3DES加密,涉及到两种语言3DES一致性的问题, 下面分享一下, 这里的KEY采用Base64编码,便用分发,因为Java的By ...

  10. Java中3DES加密解密与其他语言(如C/C++)通信

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

随机推荐

  1. python_8_集合

    1.集合:可变集合set,不可变集合frozenset,集合是无序不重复的 set('hello') set9[1,2,3,4]) set((1,2,3)) 2.添加元素 > add:将元素整体 ...

  2. G - Radar Scanner Gym - 102220G(中位数~~)

    zThere are n rectangle radar scanners on the ground. The sides of them are all paralleled to the axe ...

  3. Docker系列七: 使用Humpback管理工具管理容器(一款UI管理工具)

    Humpback 可以帮助企业快速搭建轻量级的 Docker 容器云管理平台,若将你的 Docker 主机接入到 Humpback 平台中,就能够为你带来更快捷稳定的容器操作体验. 功能特点 Web操 ...

  4. python之time模块和hashlib模块

    一.time模块 import time print(time.strftime('%Y-%m-%d %H:%M:%S'))#获取当前的格式化时间,time.strftime(format) prin ...

  5. matplotlib,seaborn中文乱码问题的解决

    方法一:指定字体 import matplotlib.pyplot as plt myfont = matplotlib.font_manager.FontProperties(fname='/hom ...

  6. why rpc

    why rpc 单体应用业务复杂, 大集群部署时对数据库的连接是个考验, 维护这个应用也比较费劲(一群人维护,容易代码冲突) 拆分后 各服务之间的接口依赖不能使用httpClient来搞,一是效率太低 ...

  7. QT中的QQueue类、C++中的queue类

    C++中的queue 实现一种先进先出的数据结构,是一个模板类 头文件 #include<queue> queue<int> Q; //定义一个int型队列 Q.empty() ...

  8. smarty应用1 之 模板进行数学运算,保留小数位数

    例子1 乘法除法运算: 1格式:{$number|number_format} 保留小数点后2位小数. {$v/$total*100|string_format:"%0.2f"|c ...

  9. 吴裕雄--天生自然 神经网络人工智能项目:基于深度学习TENSORFLOW框架的图像分类与目标跟踪报告(续四)

    2. 神经网络的搭建以及迁移学习的测试 7.项目总结 通过本次水果图片卷积池化全连接试验分类项目的实践,我对卷积.池化.全连接等相关的理论的理解更加全面和清晰了.试验主要采用python高级编程语言的 ...

  10. IO流文件拷贝

    目录 IO流文件拷贝 前言 字节流(使用FileInputStream和FileOutputStream读取每一个字节...) 字节流(使用FileInputStream和FileOutputStre ...