php DES加密或者解密

     function pkcs5_pad ($text, $blocksize) {  //加密时的字节填充,保持和java 一致
         $pad = $blocksize - (strlen($text) % $blocksize);
         return $text . str_repeat(chr($pad), $pad);
     }
     function myCrypt($input,$key) //加密
     {
         $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB);
         $input =pkcs5_pad($input, $size);
         $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, ‘‘, MCRYPT_MODE_ECB, ‘‘);
         $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
         mcrypt_generic_init($td, $key, $iv);
         $data = mcrypt_generic($td, $input);
         mcrypt_generic_deinit($td);
         mcrypt_module_close($td);
         $data = base64_encode($data);
         return $data;
     }
     function myDecrypt($str,$key) //解密
     {
         $decrypted= mcrypt_decrypt(
             MCRYPT_RIJNDAEL_128,
             $key,
             base64_decode($str),
             MCRYPT_MODE_ECB
             );

         $dec_s = strlen($decrypted);
         $padding = ord($decrypted[$dec_s-1]);
         $decrypted = substr($decrypted, 0, -$padding);
         return $decrypted;
     }

使用方式

define("DESKEY", "11111111111111111111111111111111");

echo myCrypt("123", DESKEY); 

echo myDecrypt("TvQqNxgkDgZj4BaqG4cKkA==",DESKEY); 
时间: 2024-08-27 17:57:19

php DES加密或者解密的相关文章

Java DES 加密和解密

DES算法简介DES(Data Encryption Standard)是发明最早的最广泛使用的分组对称加密算法.DES算法的入口参数有三个:Key.Data.Mode.其中Key为8个字节共64位,是DES算法的工作密钥:Data也为8个字节64位,是要被加密或被解密的数据:Mode为DES的工作方式,有两种:加密或解密. 项目中的加密和解密工具类: public class DesUtils { public final static String DES = "DES"; pub

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

原文:DES加密和解密PHP,Java,ObjectC统一的方法 PHP的加解密函数 <?php class DesComponent { var $key = '12345678'; function encrypt($string) { $ivArray=array(0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF); $iv=null; foreach ($ivArray as $element) $iv.=CHR($element); $siz

【Java】分享一个使用DES加密和解密的算法

[Java]分享一个使用DES加密和解密的算法 分享一个使用DES加密和解密的算法,当前这个算法已经应用到项目中: package com.util; import java.net.URLDecoder; import java.net.URLEncoder; import java.security.Key; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.c

Java DES 加密和解密源码

Java密码学结构设计遵循两个原则: 1) 算法的独立性和可靠性. 2) 实现的独立性和相互作用性. 算法的独立性是通过定义密码服务类来获得.用户只需了解密码算法的概念,而不用去关心如何实现这些概念.实现的独立性和相互作用性通过密码服务提供器来实现.密码服务提供器是实现一个或多个密码服务的一个或多个程序包.软件开发商根据一定接口,将各种算法实现后,打包成一个提供器,用户可以安装不同的提供器.安装和配置提供器,可将包含提供器的ZIP和JAR文件放在CLASSPATH下,再编辑Java安全属性文件来

java实现DES加密与解密,md5加密

很多时候要对秘要进行持久化加密,此时的加密采用md5.采用对称加密的时候就采用DES方法了 1 import java.io.IOException; 2 import java.security.MessageDigest; 3 import java.security.SecureRandom; 4 5 import javax.crypto.Cipher; 6 import javax.crypto.SecretKey; 7 import javax.crypto.SecretKeyFac

C# 使用DES加密,解密字符串

1 DES类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.IO; namespace NoticeBoard { /// <summary> /// DES加密解密算法 /// </summary> public class DES { /// <sum

asp.net和java这间des加密和解密

最近有个新项目用java做的,老项目是asp.net,接口传输需要des加解密,网上查了些资料,大多数不能拿来就用,自己经过调试加工了一下,具体代码如下: 密钥一定是8位 /// <summary> /// 利用DES加密算法加密字符串(可解密) /// </summary> /// <param name="pToEncrypt">被加密的字符串</param> /// <param name="key">

DES加密与解密(c语言版)

其实是作业啦,写这个东西花了我不少时间,明天就是deadline了,熬夜至凌晨写完的,放在这里做个纪念,代码遵循GPL协议,可随意下载,修改,共享. 文中有许多注释掉的东西,是测试的时候用的. #include <string.h> #include <stdio.h> class DES { public: ~DES() {} void setkey(const unsigned char *); void enctransform(const unsigned char *,u

简易版DES加密和解密详解

在DES密码里,是如何进行加密和解密的呢?这里采用DES的简易版来进行说明. 二进制数据的变换 由于不仅仅是DES密码,在其它的现代密码中也应用了二进制数据,所以无论是文章还是数字,都需要将明文变换为二进制数据,如图表所示,这里仅将使用的16字符(其中含有1个没有意义的空字符),将每个字符都对应不同的4bit的二进制编码进行变换,将明文表示成"0"和"1"的系列 表2.8 表2.9 本文部分参考自漫画密码,此文博主花了几个小时的时间整理,转载请注明http://ww