不说废话上代码

加密

  $str_padded = 'android'; //要加密的字符串
  $iv = "12345678"; 偏移值 cbc必填 "\x01\x02\x03\x04\x05\x06\x07\x08"; 如果java或这安卓  用的是byte那么需要改成这样
  $data['code'] = base64_encode(openssl_encrypt($this->pkcsPadding($str_padded,8),'DES-CBC',"33524ddt",OPENSSL_NO_PADDING,$iv)); //加密之后填充,然后base64

解密

  $decrypted = openssl_decrypt(base64_decode($data['code']), 'DES-CBC', '33524ddt', OPENSSL_NO_PADDING,$iv);
  dump($this->pkcs5_unpad($decrypted));//去掉填充

/**
* 填充
*
* @param $str
* @param $blocksize
* @return string
*/
private function pkcsPadding($str, $blocksize)
{
  $pad = $blocksize - (strlen($str) % $blocksize);
  return $str . str_repeat(chr($pad), $pad);
}

/*
* 对解密后的已字符填充的明文进行去掉填充字符
*/
function pkcs5_unpad($text) {
  $pad = ord($text{strlen($text) - 1});
  if ($pad > strlen($text)){
    return false;

  }
  return substr($text, 0, -1 * $pad);
}

注:注意和别的语言对接的时候base64加密有差异要注意特殊字符过滤

注:和java对接的时候 发现java的iv字段是byte[] iv = { 1, 2, 3, 4, 5, 6, 7, 8 }类型 查了好久 最后发现PHp对应的主要 字符串就OK了如下

注:如果java或这安卓  用的是byte类型那么需要注意是否需要改成 "\x01\x02\x03\x04\x05\x06\x07\x08"16进制的写法;

注:有的JAVA是重写base64,des加密后需要base64下,主要注意 加密后的字符串,按照规律,从左至右,每60个字符你添加一个空格

PHP openssl DES加解密的更多相关文章

  1. DES加解密 cbc模式 的简单讲解 && C++用openssl库来实现的注意事项

    DES cbc是基于数据块加密的.数据块的长度为8字节64bit.以数据块为单位循环加密,再拼接.每个数据块加密的秘钥一样,IV向量不同.第一个数据快所需的IV向量,需要我们提供,从第二个数据块开始, ...

  2. PHP 基础篇 - PHP 中 DES 加解密详解

    一.简介 DES 是对称性加密里面常见一种,全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法.密钥长度是64位(bit),超过位数密钥被忽略.所谓对 ...

  3. Node.js的DES加解密和MD5加密

    最基本的就是经常用的md5加密算法 代码如下 var  MD5=function (data) {        var _encrymd5 = require('crypto').createHas ...

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

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //i ...

  5. DES加解密算法Qt实现

      算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为b ...

  6. Java Des加解密方法(c#加密Java解密)

    最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...

  7. JavaScript与C#互通的DES加解密算法

    原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...

  8. Java拓展教程:文件DES加解密

    Java拓展教程:文件加解密 Java中的加密解密技术 加密技术根据一般可以分为对称加密技术和非对称加密技术.对称加密技术属于传统的加密技术,它的加密和解密的密钥是相同的,它的优点是:运算速度快,加密 ...

  9. javascript JS CryptoJS DES加解密CBC模式与C#DES加解密相同互通

    我们只知道不同的语言解密要相互通用,就需要遵循相同的加密方式,然而在具体做技术预研的时候,就发现会遇到很多问题,网上找的资料也是比较片面,所以我踩了坑,并且把解决方案和相关资料源码提供出来,给需要的朋 ...

随机推荐

  1. oracle创建用户并指定表空间

    /*第1步:创建ODPS数据表空间 */create tablespace ODPS logging datafile '/home/oracle/tablespace_dir/ODPS.dbf' s ...

  2. FPGA的配置方式

    FPGA的配置方式 FPGA的配置方式有以下几种,JTAG,AS,PS,AP,FPP等几种. JTAG模式.JTAG模式下将.sof文件下载到FPGA内部的RAM内部进行运行,掉电程序丢失,主要用于前 ...

  3. Javaspring+mybit+maven中实现定时任务

    背景:在Javaspring中,定时的启动某一个任务时,使用@Scheduled来实现 Javaspring工程创建好之后,直接创建下面的class文件即可.具体的用法可参照 https://www. ...

  4. mysql创建用户并授权Repl_slave_priv和Repl_client_priv

    CREATE USER 'test'@'localhost' IDENTIFIED BY 'test'; FLUSH PRIVILEGES; GRANT REPLICATION CLIENT ON * ...

  5. py库:pdfminer3k、docx。(PDFf转word)

    安装pdfminer模块: pip install pdfminer3k 安装docx模块: https://www.lfd.uci.edu/~gohlke/pythonlibs/  下载 pytho ...

  6. 怎么又出错了?盘点java中最容易出现的错误

    现如今,java已经广泛应用各种软件开发领域.基于面向对象的设计,java屏蔽了诸如C,C++等语言的一些复杂性,提供了垃圾回收机制,平台无关的虚拟机技术,Java创造了一种前所未有的开发方式.所以, ...

  7. Java spi 和Spring spi

    service provider framework是一个系统, 实现了SPI, 在系统里多个服务提供者模块可以提供一个服务的实现, 系统让客户端可以使用这些实现, 从而实现解耦. 一个service ...

  8. 【转帖】你知道X86构架,你知道SH构架吗?

    你知道X86构架,你知道SH构架吗? https://www.eefocus.com/mcu-dsp/363100   前面我们讲到了 8 位处理器,32 位处理器,以及 X86 构架,那么除了这些还 ...

  9. java之hibernate之组件映射

    1.在开发中,有的类信息比较复杂,而且某几个信息可以组成某一个部分,这个时候可以采用组件映射,组件映射是一张表映射到多个类.表结构 2.类的设计 Link.java public class Link ...

  10. 移动Web深度剖析

    随着前端技术的急速发展,随着互联网行业的日益发展,HTML5作为一种比较新型的开发技术早已经被很多大的企业所应用,通过HTML5语言可以开发适用于任何设备上的酷炫网站页面,所以HTML5的发展趋势可想 ...