代码及使用说明:

  1. <?php
  2. /**
  3. *PHP 识别 java 8位密钥的加密和解密方式
  4. *@desc 加密方式 通用
  5. */
  6. class DES {
  7. var $key;
  8. var $iv; //偏移量
  9.  
  10. function DES($key) {
  11. //key长度8例如:1234abcd
  12. $this->key = $key;
  13. }
  14. //加密方式
  15. function encrypt($str) {
  16. $str = $this->pkcs5_pad($str);
  17. $encode = mcrypt_encrypt(MCRYPT_DES, $this->key, $str, MCRYPT_MODE_ECB);
  18. return bin2hex($encode);
  19. }
  20. //解密方式
  21. function decrypt($str) {
  22. $str = $this->hex2bin($str);
  23. $str = mcrypt_decrypt(MCRYPT_DES, $this->key, $str, MCRYPT_MODE_ECB);
  24. return $str;
  25. }
  26. //十六进制数据转换成二进制数据流
  27. function hex2bin($data) {
  28. $len = strlen($data);
  29. for($i=0;$i<$len;$i+=2) {
  30. $newdata .= pack("C",hexdec(substr($data,$i,2)));
  31. }
  32. return $newdata;
  33. }
  34.  
  35. function pkcs5_unpad($text)
  36. {
  37. $pad = ord($text{strlen($text)-1});
  38. if ($pad > strlen($text)) return $text;
  39. if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return $text;
  40. return substr($text, 0, -1 * $pad);
  41. }
  42. //补位
  43. function pkcs5_pad($text)
  44. {
  45. $len = strlen($text);
  46. $mod = $len % 8;
  47. $pad = 8 - $mod;
  48. return $text.str_repeat(chr($pad),$pad);
  49. }
  50.  
  51. }
  52. ?>

使用方式:

  1. $key ='' 密钥
  2. $data = '123456'; 加密的字符串
  3. $Des = new Des($key);
  4. $encode = $Des->encrypt($data);//加密
  5. $decode = $Des->decrypt($encode);//解密
  6. echo $encode."<br/>";
  7. echo $decode."<br/>";

PHP 识别 java 8位 des 加密和 解密方式的更多相关文章

  1. 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作

    分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...

  2. DES加密和解密PHP,Java,ObjectC统一的方法

    原文:DES加密和解密PHP,Java,ObjectC统一的方法 PHP的加解密函数 <?php class DesComponent { var $key = '12345678'; func ...

  3. Java实现文件的加密与解密

    最近在做一个项目,需要将资源文件(包括图片.动画等类型)进行简单的加密后再上传至云上的服务器,而在应用程序中对该资源使用前先将读取到的文件数据进行解密以得到真正的文件信息.此策略的原因与好处是将准备好 ...

  4. Java 实现字符串的加密与解密

    package com.wangbo.util; import java.security.Key; import java.security.Security; import javax.crypt ...

  5. java对字符串进行加密和解密(以下是来自其他博主)

    背景:需要对读取数据库配置的文件进行加密,防止他人拿到数据,而对自己的代码,有要实现进行解密,网上给的加密方式,什么MD5,base64,还有等等,都太复杂,而且有些是单向的,只加密不解密,以下代码, ...

  6. JAVA实现AES的加密和解密算法

    原文 JAVA实现AES的加密和解密算法 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import ja ...

  7. IOS, Android, Java Web Rest : RSA 加密和解密问题

    IOS, Android, Java Web Rest :  RSA 加密和解密问题 一对公钥私钥可以使用 OpenSSL创建, 通常 1024位长度够了. 注意: 1. 公钥私钥是BASE64编码的 ...

  8. 一、DES加密和解密

    一.DES加密和解密 原文:http://www.jb51.net/article/51879.htm  还有其他文章 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...

  9. JAVA中AES对称加密和解密以及与Python兼容

    引言:本文主要解决Java中用AES加密及解密,同时可通过Python脚本对Java加密后的字符进行解密的操作. 由于近期工作中用到需要使用Java对一串密钥进行加密,并且后台通过Python语言读取 ...

随机推荐

  1. 《剑指offer》面试题39 二叉树的深度(java)

    摘要: 今天翻到了<剑指offer>面试题39,题目二中的解法二是在函数的参数列表中通过指针的方式进行传值,而java是没有指针的,所以函数要进行改造.然而我翻了下别人的java版本(我就 ...

  2. Linux块设备和字符设备

    块设备:系统能够随机无序访问固定大小的数据片的设备,这些数据片称为块.块设备是以固定大小长度来传送资料的,它使用缓冲区暂存数据,时机成熟后从缓存中一次性写入到设备或者从设备中一次性放到缓存区.常见的块 ...

  3. 【AtCoder Grand Contest 012C】Tautonym Puzzle [构造]

    Tautonym Puzzle Time Limit: 50 Sec  Memory Limit: 256 MB Description 定义一个序列贡献为1,当且仅当这个序列 由两个相同的串拼接而成 ...

  4. 20155227 2016-2017-2 《Java程序设计》第七周学习总结

    20155227 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 认识时间与日期 时间的度量 世界时:在1972年引入UTC之前,GMT与UT是相同的. 国际 ...

  5. zookeeper日常报错总结

    1:创建子节点的时候 没有根节点 org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for ...

  6. 【译】第十五篇 Integration Services:SSIS参数

    本篇文章是Integration Services系列的第十五篇,详细内容请参考原文. 简介在前一篇,我们使用SSDT-BI将第一个SSIS项目My_First_SSIS_Project升级/转换到S ...

  7. 最小生成树 kuangbin专题最后一个题

    题目链接:https://cn.vjudge.net/contest/66965#problem/N 注释:这道题需要用krustra,用prim的话可能会超时.并且在计算距离的时候要尽量减少步骤,具 ...

  8. 2016.6.19——C++杂记

    C++杂记 补充的小知识点: 1.while(n--)和while(--n)区别: while(n--)即使不满足也执行一次循环后跳出. while(--n)不满足直接跳出循环,不执行语句. 用cou ...

  9. jQuery Validate自定义金钱验证,是否为金额格式,保留两位小数,并支持千分制货币格式

    //自定义函数实现 isMoney: function (value, element){ // return this.optional(element) || /(^[1-9]([0-9]+)?( ...

  10. Windows 10安装MongoDB(安装&启动)

    Windows 10家庭中文版,MongoDB 3.6.3, 最近在学习Scrapy,可以却从未将scraped data存储到数据库中.在看过一些文档后,Scrapy会和MongoDB结合使用(还有 ...