php 解密 java des 密文
背景
对方系统java des 加密, 我们用 php 解密
模式基本介绍
ECB模式:电子密本方式,JAVA封装的DES算法的默认模式,就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,则补足8个字节
CBC模式:密文分组链接方式,NET封装的DES算法的默认模式,复杂,加密步骤百度就有
java 代码
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.DES;
import javax.crypto.SecretKey;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm; public class Hello {
public static void main(String[] args) {
String appSecret = "HgQX9h6XD9fVq__eojuMcfuSmnwC3FqIpxz_YOl38rI";
String value = "待加密字符"; SecretKey secretKey = SecureUtil.generateDESKey(SymmetricAlgorithm.DES.getValue(),appSecret.getBytes());
//构建
DES des = SecureUtil.des(secretKey.getEncoded()); //加密
String encryptHexField = des.encryptHex(value);
String base = des.encryptBase64(value);
System.out.println("16进制密文:" + encryptHexField);
System.out.println("base64密文:" + base);
}
}
分析
- java DES (默认
DES/ECB/PKCS5Padding) - php des-ecb ,加密算法列表 openssl_get_cipher_methods()
php 代码
/**
* 16进制转字符串
* @param string $hex
* @return string
*/
public function hexToStr(string $hex)
{
$string = "";
for ($i = 0; $i < strlen($hex) - 1; $i += 2)
$string .= chr(hexdec($hex[$i] . $hex[$i + 1]));
return $string;
} /**
* 解密
* @param string $str
* @param string $key
* @return string
*/
public function desDecrypt(string $str, string $key)
{
$base64 = base64_encode($this->hexToStr($str));
return openssl_decrypt($base64, 'des-ecb', $key);
}
备注:
测试工具 http://tool.chacuo.net/cryptdes
参考文档 https://www.php.net/manual/zh/function.openssl-decrypt.php
参考文档 https://www.javajike.com/book/hutool/chapter8/c376fd86c904a3c20175464e2fb6bbec.html
参考文档 https://www.cnblogs.com/jingxiaoniu/p/12217789.html
php 解密 java des 密文的更多相关文章
- 使用C# DES解密java DES加密的字符串
转自 microAllen 最近需要使用C#的DES解密工具类解密字符串,但是要解密的字符串是使用java进行DES加密的,去网上查了关于C#和java关于DES加密解密的资料,发现可以相互加密解 ...
- Java Des加解密方法(c#加密Java解密)
最近我们用Java把一个用.net编写的老系统重新做了翻版,但是登录还是用.net的登录.这样就会遇到一个比较棘手的问题,我们登录用的cookie信息都是.net用des加密的,但我们不得不用Java ...
- 常见的加密和解密算法—DES
一.DES加密概述 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并 ...
- Rsa加解密Java、C#、php通用代码 密钥转换工具
之前发了一篇"TripleDes的加解密Java.C#.php通用代码",后面又有项目用到了Rsa加解密,还是在不同系统之间进行交互,Rsa在不同语言的密钥格式不一样,所以过程中主 ...
- C# 加密解密(DES,3DES,MD5,Base64) 类
public sealed class EncryptUtils { #region Base64加密解密 /// <summary> ...
- Java DES 测试
package com.des.test; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyEx ...
- 各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)
原文:各种加密解密函数(URL加密解密.sha1加密解密.des加密解密) 普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语 ...
- 小程序敏感信息解密-java
/** * AES解密 * @param content 密文 * @return * @throws InvalidAlgorithmParameterException * @throws NoS ...
- Java 加解密 AES DES TripleDes
package xxx.common.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.crypt ...
- C# Java DES加密解密
转自http://www.cnblogs.com/zhuiyi/archive/2013/04/01/2993201.html 最近被DES加解密弄得超级郁闷,我用C#的方法加密得到的密文老是跟客户给 ...
随机推荐
- Unity 在2D中实现LookAt,跟随鼠标转动
Vector3 v = (target.position - transform.position).normalized; transform.right = v;
- shell语句记录
sed篇: 1. 删除指定的字符,比如 'a'-----$ sed 's/a//' file 2. 移除每一行的第一个字符----$ sed 's/^.//' file 3. 移除每一行的最后一个字符 ...
- apk签名之后安装失败
Android Studio 3.0.1 很奇怪的一个现象,直接run的话可以成功,debug也可以,但是用签名打包之后,却安装失败,原来是打包的时候选错了.原来签名时,Signature Versi ...
- 部分jdk网盘链接
链接:https://pan.baidu.com/s/1Nw84qVRL3Buarh2LY1lWEg 提取码:6q2z 含 6u45 7u80 8u202 11.0.X 的win及linux版 没有网 ...
- [AGC033C] Removing Coins
个人思路: 每轮会删掉除选定节点外的所有叶子节点. 黑白染色,但是不会推 SG 函数. 然后就不会了. 正解: 每次直径长度 \(-1\) 或 \(-2\).\(0\) 必胜,\(1\) 必败,\(2 ...
- 复制 GUI 状态
FORM frm_set_pf_status USING pt_extab TYPE slis_t_extab. *--·状态 'STANDARD'是从系统功能组 KKBL GUI状态下的" ...
- Python 字典类型
1.由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复.程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典.实 ...
- 使用骨架创建maven的web工程 maven工程servlet实例之间指定web资源包 实例之导入项目依赖的jar包 maven工程servlet实例之jar包冲突解决
使用骨架创建maven的web工程 操作一样把勾进行勾选找到webapp选项 下一步创建就行 创建好会有显示 目录结构其余的都需要自己手动补齐 有小蓝点的才是一个web项目, 如果上面都正确的话没有 ...
- react native android9 axios network error
react native 发布成apk后网络请求会报 network error 是因为android9以后http协议不能用,要用htts协议.需要改成配置能兼容http协议,修改信息如下: and ...
- 2022-04-14内部群每日三题-清辉PMP
1.项目经理资源有限,无法获得更多资源.项目经理应该使用什么技术来充分利用现有资源,而不会令项目完成时间延期? A.资源平滑 B.资源平衡 C.快速跟进 D.赶工 2.正在审查问题日志的项目经理注意到 ...