`
905766491
  • 浏览: 31532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

3des加密

    博客分类:
  • php
阅读更多

 

 encrypt_class.php//文件名

<?php
class Crypt3Des {
 public $key = "XXXXXXXXXXXXXXXXX";//这个根据实际情况写
function Crypt3Des($key){

$this->key=$key;

}

 function encrypt($input){//数据加密
 $size = mcrypt_get_block_size(MCRYPT_3DES,'ecb');
 $input = $this->pkcs5_pad($input, $size);
 $key = str_pad($this->key,24,'0');
 $td = mcrypt_module_open(MCRYPT_3DES, '', '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($this->PaddingPKCS7($data));
 $data = base64_encode($data);
 return $data;
 }

 

 function decrypt($encrypted){//数据解密
 $encrypted = base64_decode($encrypted);
 $key = str_pad($this->key,24,'0');
 $td = mcrypt_module_open(MCRYPT_3DES,'','ecb','');
 $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
 $ks = mcrypt_enc_get_key_size($td);
 @mcrypt_generic_init($td, $key, $iv);
 $decrypted = mdecrypt_generic($td, $encrypted);
 mcrypt_generic_deinit($td);
 mcrypt_module_close($td);
 $y=$this->pkcs5_unpad($decrypted);
 return $y;
 }

 function pkcs5_pad ($text, $blocksize) {
 $pad = $blocksize - (strlen($text) % $blocksize);
 return $text . str_repeat(chr($pad), $pad);
 }

 function pkcs5_unpad($text){
 $pad = ord($text{strlen($text)-1});
 if ($pad > strlen($text)) {
 return false;
 }
 if (strspn($text, chr($pad), strlen($text) - $pad) != $pad){
 return false;
 }
 return substr($text, 0, -1 * $pad);
 }
 
 function PaddingPKCS7($data) {
 $block_size = mcrypt_get_block_size(MCRYPT_3DES, MCRYPT_MODE_CBC);
 $padding_char = $block_size - (strlen($data) % $block_size);
 $data .= str_repeat(chr($padding_char),$padding_char);
 return $data;
 }
}

 $rep=new Crypt3Des();//初始化一个对象
 $input="hello world";
 echo "原文:".$input."<br/>";
 $encrypt_card=$rep->encrypt($input);
 echo "加密:".$encrypt_card."<br/>";
 echo "解密:".$rep->decrypt($rep->encrypt($input));

?>

 

这是一个非常有用的3des加密,在多数情况下可以直接拿来用。很不错哦~!@

分享到:
评论

相关推荐

    3DES加密解密工具

    标题中的“3DES加密解密工具”指的是一个用于执行三重数据加密标准(3DES,Triple DES)的软件工具,这种工具通常用于保护敏感数据的安全,确保信息在传输过程中的机密性。3DES是DES(Data Encryption Standard,...

    STM32上实现D3DES加密

    6. **执行D3DES**:首先用第一个密钥执行DES加密,然后用第二个密钥执行DES解密,最后再用第一个密钥进行一次DES加密。这个过程就是D3DES的核心。 7. **密文后处理**:加密完成后,对密文进行逆初始置换,得到最终...

    3DES加密js前端示例

    3DES(Triple Data Encryption Algorithm,三重数据加密算法)是一种强化版的DES(Data Encryption Standard)加密算法,它通过三次应用DES加密过程来提高安全性。在JavaScript中实现3DES加密通常是为了在网络通信中...

    3DES加密java实现

    本篇文章将详细探讨Java环境下如何实现3DES加密算法,并介绍相关知识点。 首先,让我们了解3DES的工作原理。3DES是对原始DES算法的扩展,它通过执行三次加密过程来提高安全性。简而言之,3DES分为两种模式:EDE...

    C# 3DES 加密源码

    - **System.Security.Cryptography.TripleDESCryptoServiceProvider**:这是.NET框架提供的3DES加密服务类,通过实例化它可以获取到3DES加密器对象。 - **CreateEncryptor()** 和 **CreateDecryptor()**:这两个方法...

    3DES加密算法C语言实现

    在C语言中实现3DES加密算法,可以确保在不同平台上的兼容性和一致性,尤其对于需要跨平台操作的应用场景,如将C语言代码移植到Android平台,通过JNI接口与Java代码交互,能够很好地解决加解密结果不一致的问题。...

    3DES加密解密

    标题中的“3DES加密解密”指的是在信息技术领域中,使用三重数据加密标准(3DES,Triple Data Encryption Standard)进行数据加密和解密的过程。3DES是一种加强版的DES加密算法,它通过三次应用DES的加密过程来提高...

    delphi版的3DES加密 pkcs5padding填充

    本篇文章将深入探讨Delphi实现的3DES加密以及PKCS5Padding填充方法。 3DES,全称为三重数据加密标准(Triple Data Encryption Standard),是对原有的DES(Data Encryption Standard)算法的加强版。它通过三次应用...

    Java中3DES加密解密示例(封装byte数组16进制互转)

    Java 中的 3DES 加密解密示例(封装 byte 数组和 16 进制字符串互转) 在 Java 中,3DES 加密是一种常用的加密算法,它可以将明文数据转换为密文数据,以保护数据的安全性。在本示例中,我们将展示如何使用 3DES ...

    DES/3DES加密解密工具

    对数据进行单DES或者3DES加密或者解密,如果密码长度为8字节则为DES加密或者解密

    3des加密的C语言实现

    在C语言中实现3DES加密涉及到一系列的步骤和技术,以下将详细介绍3DES的工作原理、C语言实现的关键点以及相关的编程技巧。 1. **3DES工作原理** - 3DES由三个DES加密过程组成:EDE(加密-解密-加密)。首先,数据...

    3DES加密解密工具类

    3DES加密解密的全工具类,快速帮助新人进行3Des加密解密

    3DES加密算法C++实现

    总的来说,理解和实现3DES加密算法需要对位操作、循环和模式有深入的理解,同时需要关注加密过程中的安全性和效率。C++代码段可以作为一个学习和研究3DES的实用工具,帮助我们更好地理解加密算法的工作原理。

    基于3des加密解密工具

    3DES,全称为三重数据加密标准(Triple Data Encryption Algorithm),是DES加密算法的一种强化版本。DES是一种古老的对称加密算法,由IBM在1970年代初开发,后被美国国家标准局采纳为商业和政府的标准。然而,随着...

    C#3DES加密解密

    本篇文章将深入探讨C#中实现3DES加密解密的方法。 3DES的工作原理是通过三次应用DES算法来提高安全性。它将明文分成64位的数据块,然后用三个不同的密钥进行三次独立的DES加密过程:一次加密、一次解密、再一次加密...

    3des加密 仅能加密英文 和 txt文件

    标题中的“3DES加密”指的是Triple DES(三重数据加密标准),它是一种广泛使用的对称加密算法,基于DES(Data Encryption Standard)并将其安全性增强了三倍。DES原本使用56位密钥,3DES通过三次独立的DES加密过程...

    3DES 加密类 加密

    在C++中实现3DES加密,需要包含相关库,如`&lt;openssl/des.h&gt;`。首先,你需要创建一个3DES上下文环境,设置密钥,然后可以进行加密和解密操作。以下是一个简化的3DES加密过程: ```cpp #include &lt;openssl/des.h&gt; ...

    3des加密解密

    标题 "3DES加密解密" 涉及到的是数据安全领域中的一种常见的对称加密算法——三重DES(Triple DES)。此算法是基于原始的DES(Data Encryption Standard)算法,通过三次加密过程增强了其安全性。以下是关于3DES及其...

    JS端3DES加密JS文件.zip

    通常,服务器会提供一个公钥,客户端使用这个公钥加密3DES的密钥,然后发送给服务器,服务器用私钥解密得到3DES密钥,这样即使在传输过程中密钥被截获,也无法解密数据,因为攻击者没有私钥。 最后,"下载须知 ---...

    3des加密的C语言算法

    3des加密算法的C语言实现,很好很实用

Global site tag (gtag.js) - Google Analytics