php对应java的AES/ECB/PKCS5Padding加密方法,通过bin2hex输出

对接java AES/ECB/PKCS7Padding加密 在对接java开发的加密方法,整理的PHP 对接java AES/ECB/PKCS7Padding加密转16进制字符串,加解密方法 立即下载
<?php

namespace Common\Help;
class AesHelper
{
    /**
     * @param $key
     * @param $data
     * @return string
     * @author lf 2020/7/6
     */
    public static function encrypt($key, $data)
    {
        $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
        $input = self::pkcs5Pad($data, $size);
        $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, '');
        $iv = '0102030405060708';
        mcrypt_generic_init($td, $key, $iv);
        $data = mcrypt_generic($td, $input);
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
        $data = bin2hex($data);
        return $data;
    }

    /**
     * @param $text
     * @param $blocksize
     * @return string
     * @author lf 2020/7/6
     */
    public static function pkcs5Pad($text, $blocksize)
    {
        $pad = $blocksize - (strlen($text) % $blocksize);
        return $text . str_repeat(chr($pad), $pad);
    }

    /**
     * @param $key
     * @param $data
     * @return false|string
     * @author lf 2020/7/6
     */
    public static function decrypt($key, $data)
    {
        $iv = '0102030405060708';
        $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, hex2bin($data), MCRYPT_MODE_ECB, $iv);
        $dec_s = strlen($decrypted);
        $padding = ord($decrypted[$dec_s - 1]);
        $decrypted = substr($decrypted, 0, -$padding);
        return $decrypted;
    }
}

可根据需求自行把hex2bin改成base64_decode

相关推荐

武汉理工大学 python实验三

请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾),如无解则输出`“Data Error!题目为:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?年前,《孙子算经》中记载一个有趣的问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,已知共有。编写一个宝塔上的琉璃灯的小程序,计算并输出每层各有多少盏琉璃灯。,如果有多个解,则分行输出,每行一个解;

2401_83472225的博客 5950

Java进制转换(Hex~Bin,2进制~16进制)

项目中遇到的,就随手记录一下Hex到Bin的转换: 问题描述: . Java中的Int默认保存为十进制数字。为了能够直观的看到(或者分析)二进制数字,一般使用String类保存二进制数字,如101010101010. 类似的,我们也使用String类保存十六进制数字,如ABCD1230。 . 现在想要根据 二进制字符串 转换成 十六进制字符串 ,怎么做呢? 普通的转换是这样的(以2进制-16进...

sugar_HIT的博客 3589

XC7K325T FPGA硬件设计实战:从板级原理图到高速接口优化

本文以XC7K325T FPGA为核心,详细阐述了从板级原理图设计到高速接口优化的完整硬件实战流程。内容涵盖芯片管脚与电源规划、时钟复位配置电路设计,并重点解析了DDR3内存子系统以及PCIe与光纤接口等高速电路的原理图与PCB设计要点,旨在帮助工程师构建稳定可靠的高性能硬件平台。

python9snake的博客 514

Java 二进制与十六进制字符串相互转换

Java程序实现二级制与十六进制字符串的相互转换

Michael的博客 8396

【PB03F 超详细-环境搭建】蓝牙5.2安信可PB-03F-Kit开发板二次开发环境搭建

PB-03是由深圳市安信可科技有限公司开发的蓝牙模块。本博文介绍安信可PB-03F-Kit开发板的基本情况、开发环境搭建,以及以点亮LED为例介绍程序编写和固件烧录的操作流程。 安信可PB-03F-Kit开发板使用的PHY6252这样一款高集成度的低功耗蓝牙系统级芯片(SoC),专为物联网(IoT)、移动设备、可穿戴电子设备、智能家居等各种应用而设计。......

qq_44078824的博客 1万+

2023-10-20 - MacBook - 优化外接2k显示器体验:告别字小与字虚的终极指南

本文针对MacBook外接2K显示器时普遍遇到的字体过小和边缘发虚问题,提供了终极解决方案。通过深入解析macOS的HiDPI与Retina显示原理,并详细指导使用SwitchResX等工具开启隐藏的HiDPI模式,实现完美的2倍整数缩放,从而在保证字体大小合适的同时获得清晰锐利的显示效果,彻底告别字小与字虚的困扰。

solidity8miner的博客 477

java hex2bin,如何实现hex2bin()?

I need to communicate between Javascript and PHP (I use jQuery for AJAX), but the output of the PHP script may contain binary data. That's why I use bin2hex() and json_encode() on PHP side.How do I co...

weixin_36051940的博客 849

南 京 农 业 大 学 试 题 纸 附表(rape.csv)是25个油菜材料,测得每个材料的千粒重、亚油酸等的含量. (1) 对物质含量的八个指标作主成分分析,画出碎石图和主成分得分图; (2) 选

(1)请用n1

Mrrunsen的博客 498

java实现二进制异或_JAVA实现二进制和16进制之间的互相转换,8进制同理,附带异或操作实现...

public static String bin2Hex(String binStr) {int deci = Integer.valueOf(binStr,2);return Integer.toHexString(deci);}public static String hex2Bin(String hexStr) {int deci = Integer.valueOf(hexStr,16);r...

weixin_32632831的博客 525

基于YOLO的印章检测及文字识别

针对印章自动化检测与文字识别需求,提出了一种融合改进YOLO模型与OCR技术的端到端解决方案,旨在解决复杂背景干扰、印章残缺变形及环形文字排列等难题

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 8224

Puchem化合物数据批量抓取采集_宝典_教程_Python爬虫

本文共计6500字,导出到PDF达42页(含代码)。从0教你如何抓取Pubchem化合物数据。 1、 Pubchem介绍 ​ Pubchem是美国国立卫生研究院(NIH)的开放式化学数据库,自2004年推出以来,pubchem已成为科学家、学生和公众的重要化学信息资源。其专门针对化学结构搜索,是网络药理学研究经常用到的数据库之一,不仅使用方便而且免费。 ​ PubChem主要包含小分子,但也包含较大的分子,例如核苷酸,碳水化合物,脂质,肽和化学修饰的大分子。收集有关化学结构,标识符,化学和物理性..

qq_34843422的博客 6075

使用 Java 进行十六进制和二进制转换的实用教程

编写一个HexUtils 类实现一系列静态方法来处理进制转换和字节数组操作。

bigxiamu的博客 1263

【AI智能体】全场景AI智能体工作台WorkBuddy实战操作详解

全场景AI智能体工作台WorkBuddy实战操作详解

congge 5528

PHP AES-128-ECB加密解密全攻略:从原理到安全实践

对称加密是数据安全领域的核心技术,它使用同一密钥进行加密和解密,确保信息传输的机密性。其核心原理在于通过复杂的数学变换将明文转换为不可读的密文,只有持有正确密钥的授权方才能还原原始数据。这项技术的核心价值在于为Web开发、API接口和数据存储等场景提供了基础的安全保障,防止敏感信息泄露。在实际应用中,开发者常使用AES算法,特别是AES-128变体,因其在安全性与性能间取得了良好平衡。而ECB模式作为AES最基础的工作模式,虽然实现简单直观,但其固有的安全性缺陷需要开发者特别警惕。本文聚焦于PHP环境,深入

蓝色妖姬 582

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

AES加密:PHP与Java互通问题

问题:使用Java默认的AES加密方式(Cipher.getInstance("AES"))并对加密后结果进行Base64编码,这样php(http://phpaes.com/使用这里免费的AES实现版本 )里可以成功进行解密。而在Php加密后的字符串无法在Java中成功解密。 1.Java中AES加密与解密默认使用AES/ECB/PKCS5Padding模式; 2.php中的AES算法实现使用A...

weixin_30487317的博客 310

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

php与java通用AES加密解密算法

AES指高级加密标准(Advanced Encryption Standard),是当前最流行的一种密码算法,在web应用开发,特别是对外提供接口时经常会用到,下面是我整理的一套php与java通用的AES加密解密算法。 php版代码如下: class CryptAES {     protected $cipher = MCRYPT_RIJNDAEL_128;     pr

数据技术控 985

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

mb_ord 与 bin2hex

mb_ord 返回的是字符在 Unicode 字典中的位置,对于单字节字符来说,这个值就是该字符在磁盘上实际存储的值,但是对于多字节而言,比如汉字,就不一定了,因为这还要取决于你使用的什么编码,比如 utf-8 ,不同的编码会导致存储和传输的规则不一样。 比如 我们实际存储的就是 utf-8 这一列,而 mb_ord 返回的是二进制这一列。参考 所以说 mb_ord 并不能作为字符的二进制值。 bin2hex 它可以将字符转换成二进制,然后转换成十六进制,是实际存储的值,参考 以上面的中字为例 bin2h

猛犸象 325

PHP 对接JavaDESede/CBC/PKCS5Padding

PHP 对接JavaDESede/CBC/PKCS5Padding

XiongAshao的博客 883

java hex2bin_hex2bin / bin2hex / pack / unpack 的理解及应用

文本文件 / 二进制文件 / 二进制bit流计算机在存储或传输数据时都是以 bit 流的形式(二进制),文本文件和二进制文件的主要区别就是在于文本文件是有字符集的,ascii/utf8/utf16 等,读取时会将二进制流解码成对应的字符集字符。而二进制文件则简单的将数据作为二进制流处理,使用文本编辑器打开时,ascii解码,1byte 1byte 的处理并,有的落在ascii可打印字符中的就显示,...

weixin_39690963的博客 1138

PHP7 对应的 AES/CBC/PKCS5Padding 加密解密

前提说明 对接口的业务数据进行AES-128-CBC-PKCS5Padding加密,然后做 Base64编码将得到的最终字符串 特别注意 在废弃的 mcrypt加密库中,128实际上指的是块大小而不是密钥大小 但是在 openssl 中的 aes-128-cbc 的128 指的是密钥大小 也就是说,在使用有效的256位密钥时,它们都是aes-256,而如果要把 mcrypt 转为 openssl 的加密方式, mcrypt 的128 需要写成 openssl 的 256 java的 aes-128-c

fendouweiqian的博客 1万+

JAVA AES/ECB/PKCS5Padding 加密 PHP实现

java代码 public class Encryption { private static final String ALGORITHM = "AES"; public static SecretKey getSecretKey(String key) throws Exception{ SecretKeySpec secretKeySpec = new SecretKeySpe...

daivull的专栏 508

JS:实现PHP中的bin2hex()和hex2bin()

```javascript // 返回数据类型详情 function type(s){ return Object.prototype.toString.call(s) } /** * 给特殊字符添加转义符:\ ' " \n \r * @param s 需要转义的内容 * @param bool auto;是否在两边添加双引号 */ function addslash(s,bool){ s=s.toString().split("\\").join("\\\\").sp...

HaveNoFear的博客 1014

java 二进制和十六进制的互转

前段时间里项目里用到了2进制和16进制的转换,最开始一直用的包装类型自带的转换方法,类似这样的 十六进制转成十进制 Integer.valueOf("FFFF",16).toString();这样的方法在十六进制很短的情况下没问题,但是在十六进制很长的时候就会出错,比如:Integer.valueOf("FFFFFFFF",16).toString();会直接抛 java.lang.Numbe

水煮蜗牛 3万+

java中字符窜与16进制,byte之间的转换

[code="java"] java中字符窜与16进制,byte之间的转换 java中字符窜与16进制,byte之间的转换 package org.lib.code; /** * java String 与各种进制字符之间的转换 * * @author 流水孟春^篱笆墙外 08.3.4 */ public class Coding { ...

203

AES加密工具类

aes加密工具类 不用base64, 8.bin2hex(2进制转16进制),解密hex2bin(16进制转2进制),先转换后再解密。   public class AESUtil {       private static final Logger logger = Logger.getLogger(AESUtil.class);       private static final ...

鱼忘七秒的博客 314
上一篇: docker容器内时区和宿主机时区不一致
下一篇: 虚拟机centOs7.X设置固定ip
lufeeBlog
博客等级 码龄9年 2粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值