不多说,直接上代码类

然后自行依据实际情况调用即可

<?phpclass STD3Des {public static function encrypt($str, $key='xxx') {$message = $str;$iv = '';$message_padded = $message;$message_padded = self::pkcs5_pad($message_padded, 8);if (strlen($message_padded) % 8) {$message_padded = str_pad($message_padded, strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");}//$message_padded = self::pkcs5_pad($message_padded, 8);//原来是在这打包的,运行了一下发现密文不一样,就改到上面了
//        $encrypted_mcrypt = mcrypt_encrypt(MCRYPT_3DES, $key,
//                self::pkcs5_pad($message, 8), MCRYPT_MODE_ECB, $iv);$encrypted_openssl = openssl_encrypt($message_padded, "DES-EDE3", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);//return strtoupper(bin2hex($encrypted_mcrypt));return bin2hex($encrypted_openssl);}public static function encrypt_ECB($str, $key) {$message = $str;$iv = '';$message_padded = $message;$message_padded = self::pkcs5_pad($message_padded, 8);if (strlen($message_padded) % 8) {$message_padded = str_pad($message_padded, strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");}//$message_padded = self::pkcs5_pad($message_padded, 8);//原来是在这打包的,运行了一下发现密文不一样,就改到上面了
//        $encrypted_mcrypt = mcrypt_encrypt(MCRYPT_3DES, $key,
//                self::pkcs5_pad($message, 8), MCRYPT_MODE_ECB, $iv);$encrypted_openssl = openssl_encrypt($message_padded, "DES-EDE3", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING);//return strtoupper(bin2hex($encrypted_mcrypt));//return bin2hex($encrypted_openssl);return base64_encode($encrypted_openssl);}public static function decrypt_ECB($encrypted, $key) {//数据解密$data = base64_decode($encrypted);
//        $data = $encrypted;$decrypted_openssl = openssl_decrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA);return $decrypted_openssl;}public static function encrypt_CFB8($str, $key, $iv) {$message = $str;$message_padded = $message;$message_padded = self::pkcs5_pad($message_padded, 8);if (strlen($message_padded) % 8) {$message_padded = str_pad($message_padded, strlen($message_padded) + 8 - strlen($message_padded) % 8, "\0");}$encrypted_openssl = openssl_encrypt($message_padded, "DES-EDE3-CFB8", $key, OPENSSL_RAW_DATA | OPENSSL_NO_PADDING, $iv);return base64_encode($encrypted_openssl);}public static function decrypt($encrypted, $key) {//数据解密$data = hex2bin($encrypted);
//        $data = $encrypted;$decrypted_openssl = openssl_decrypt($data, 'DES-EDE3', $key, OPENSSL_RAW_DATA);return $decrypted_openssl;}private static function pkcs5_pad($text, $blocksize) {$pad = $blocksize - (strlen($text) % $blocksize);return $text . str_repeat(chr($pad), $pad);}}//$encrypted_openssl =STD3Des::encrypt('0123456789', 'test0123456789');
//echo 'encrypted_openssl=='.$encrypted_openssl.'<br />';
//034dcda761d12373f82b025355c6870d
//echo STD3Des::decrypt($encrypted_openssl, 'test0123456789');
/*** (1)进行3DES加密(ECB模式)。注:加密密钥不足24位长度时后面补0,超过24位长度时需截取前24位字符。(2)将加密后的密文进行hex转换。3DES测试结果比对:密钥:test0123456789测试数据:0123456789加密结果:034dcda761d12373f82b025355c6870d*/
?>

自行了解引用,有测试示例在代码中

1.

2.

3.

4.

5.

6.

7.

PHP 3DES加密相关推荐

  1. 怎样操作vue.js使用3DES加密

    如何在VUE-CLI手脚架建立的工程中使用3des加密: 1 npm install crypto-js --save-dev 1 import CryptoJS from 'crypto-js' 1 ...

  2. java之php、Android、JAVA、C# 3DES加密解密

    异常如下 1.javax.crypto.BadPaddingException: Given final block not properly padded 1)要确认下是否加密和解密都是使用相同的填 ...

  3. 3des java ecb_PHP 3DES加密 与JAVA通用 加密模式:ECB

    昨天帮同事解决了一个接口加密的算法,同事是个小姑娘,不懂,所以老大派我协助她,所以我为了不在姑凉面前掉面子~~火速解决它... 甲方是电信,JAVA写的接口,我一听头就大了,大家都知道~~PHP在加密 ...

  4. 探讨.NET Core数据进行3DES加密和解密问题

    前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用 ...

  5. 探讨NET Core数据进行3DES加密或解密弱密钥问题

    [导读]之前写过一篇<探讨.NET Core数据进行3DES加密和解密问题>,最近看到有人提出弱密钥问题,换个强密钥不就完了吗,猜测可能是与第三方对接导致很无奈不能更换密钥,所以产生本文解 ...

  6. java 3des 32位密钥_3des,java_java 中32位秘钥长度的 3des加密方法?,3des,java - phpStudy...

    java 中32位秘钥长度的 3des加密方法? java 中 3des加密 默认是24位秘钥的 现在需求是 32位秘钥加密 尝试很多种方法 解决 结果都不正确 // 密钥 private final ...

  7. Des与3Des加密解密

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

  8. java的et5_Javascript与java相同的3des加密(使用etdesede/CBC/PKCS5Padding )

    在某个项目中,需要开发一个与native相对应的web前端app,后台用的是java restful接口,请求数据时需要用的3des加密.如果想要请求接口,则需要javascript的加密与java相 ...

  9. java 3des加密_Java使用3DES加密解密的流程 - 3des加密解密详细解释

    Java使用3DES加密解密的流程 ①传入共同约定的密钥(keyBytes)以及算法(Algorithm),来构建SecretKey密钥对象 SecretKey deskey = new Secret ...

  10. Java中3DES加密解密示例

    在java中调用sun公司提供的3DES加密解密算法时,需要使用到$JAVA_HOME/jre/lib/目录下如下的4个jar包: jce.jar security/US_export_policy. ...

最新文章

  1. Nagios+pnp4nagios+rrdtool 安装配置为nagios添加自定义插件(三)
  2. 老程序员的忠告:不要做浮躁的软件工程师
  3. Python使用过滤器(filter)进行图像模糊处理
  4. RFID系统集成公司
  5. JPEG压缩matlab实现
  6. 文巾解题 175. 组合两个表
  7. MLPrimitive文件夹的作用
  8. Python中使用cutecharts实现简单的手绘风格的图表
  9. php pdo 更新sql语句,增删改查sql语句及PDO数据库连接操作流程实例-2019年7月24日...
  10. how tomcat works
  11. Android8.0使用ninja模块编译Settings
  12. paip.URL参数压缩64进制
  13. 有关Altera 的CPLD工程编译报错的解决方法
  14. 身份证号码前六位查询表
  15. 《统计学》第八版贾俊平第五章概率与概率分布
  16. 最新互联网架构师视频教程+源码20G
  17. vue-giant-tree 插件 报错. init if undefined
  18. cisco 2960交换机密码恢复教程
  19. 四连涨!海尔智家这波私有化还有多大想象空间?
  20. 个人注册域名需要注意哪些方面?

热门文章

  1. [小脚本] 基于opencv 的绿幕抠图
  2. 长沙理工大学教学区校园网登陆
  3. 半导体测试:基于PXI 平台的先进性能中的AC/DC和V-I测试
  4. YOLO9000, Better, Faster, Stronger论文翻译——中文版
  5. flutter学习记录
  6. java写日历记事本系统_用Java实现日历记事本源代码2660【新版】
  7. Jmeter操作与相关应用
  8. 磁珠的基础知识与选型及注意事项
  9. APP如何快速开发?运用这个方法一天开发完成
  10. ipad触控笔哪个牌子好?ipad好用的触控笔