码迷,mamicode.com
首页 > Web开发 > 详细

PHP和.NET通用的加密解密函数类,均使用3DES加解密 .

时间:2014-06-27 15:56:23      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:des   style   class   blog   code   ext   

以下为php代码

 

<PRE class=PHP name="code">&nbsp;</PRE><PRE class=PHP name="code">PHP加解密函数:</PRE><PRE class=PHP name="code">&nbsp;</PRE><PRE class=PHP name="code">    function encrypt($string) {
        //加密用的密钥文件 
        $key = "xxxxxxxx";
         
        //加密方法 
        $cipher_alg = MCRYPT_TRIPLEDES;
        //初始化向量来增加安全性 
        $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND); 
         
        //开始加密 
        $encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv); 
        return base64_encode($encrypted_string);//转化成16进制
//        return $encrypted_string;
    }
    
    function decrypt($string) {
            $string = base64_decode($string);

            //加密用的密钥文件 
            $key = "xxxxxxxx";
             
            //加密方法 
            $cipher_alg = MCRYPT_TRIPLEDES;
            //初始化向量来增加安全性 
            $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND); 
             
            //开始解密 
            $decrypted_string = mcrypt_decrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv); 
            return trim($decrypted_string);
    }</PRE>

以下为.net代码

using System;
using System.Security.Cryptography;
using System.Text;

/**//// <SUMMARY>
/// Crypto3DES 的摘要说明。
/// </SUMMARY>
public class Crypto3DES
{
    public Crypto3DES()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    private System.Text.Encoding encoding;

    /**//// <SUMMARY>
    /// 获取密匙
    /// </SUMMARY>
    public string Key
    {
        get
        {
            return "xxxxxxxx";
        }
    }

    /**//// <SUMMARY>
    /// 获取或设置加密解密的编码
    /// </SUMMARY>
    public System.Text.Encoding Encoding
    {
        get
        {
            if( encoding == null )
            {
                encoding = System.Text.Encoding.UTF8;
            }
            return encoding;
        }

        set
        {
            encoding = value;
        }
    }

    /**//// <SUMMARY>
    /// 加密
    /// </SUMMARY>
    /// <PARAM name="strString"></PARAM>
    /// <PARAM name="strKey"></PARAM>
    /// <PARAM name="encoding"></PARAM>
    /// <RETURNS></RETURNS>
    public string Encrypt3DES( string strString )
    {
        DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

        DES.Key = Encoding.GetBytes( this.Key );
        DES.Mode = CipherMode.ECB;
        DES.Padding = PaddingMode.Zeros;

        ICryptoTransform DESEncrypt = DES.CreateEncryptor();

        byte[] Buffer = encoding.GetBytes(strString);

        return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
    }

    /**//// <SUMMARY>
    /// 解密
    /// </SUMMARY>
    /// <PARAM name="strString"></PARAM>
    /// <PARAM name="strKey"></PARAM>
    /// <RETURNS></RETURNS>
    public string Decrypt3DES( string strString )
    {   
        DESCryptoServiceProvider  DES = new DESCryptoServiceProvider ();

        DES.Key = Encoding.UTF8.GetBytes( this.Key );
        DES.Mode = CipherMode.ECB;
        DES.Padding = PaddingMode.Zeros;
        ICryptoTransform DESDecrypt = DES.CreateDecryptor();

        byte[] Buffer = Convert.FromBase64String(strString);
        return UTF8Encoding.UTF8.GetString( DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length) );
    }
}

 

PHP和.NET通用的加密解密函数类,均使用3DES加解密 .,布布扣,bubuko.com

PHP和.NET通用的加密解密函数类,均使用3DES加解密 .

标签:des   style   class   blog   code   ext   

原文地址:http://www.cnblogs.com/wifi/p/3810175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!