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

以下为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加解密 .

时间: 2024-10-28 21:11:53

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

3DES加解密

3DES(或称为Triple DES),它相当于是对每个数据块应用三次DES加密算法.3*8字节密钥. 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文: 3DES加密过程为:C=Ek3(Dk2(Ek1(P))) 3DES解密过程为:P=Dk1((EK2(Dk3(C))) 补齐方式PKCS7              k=8,l=数据长度 01 -- if l mod k = k-1  02 02 -- if l mod k = k-2   

3DES加解密【示例】

代码 /** * 3DES加解密 */ public class DESedeUtils { private static final String ALGORITHM_MD5 = "md5"; private static final String ALGORITHM_DESEDE = "DESede";//加密算法,可用 DES,DESede,Blowfish private static final String CHARSET = "UTF-8&q

DES、3DES 加解密;MAC算法

/// <summary> /// DES.3DES 加解密:MAC算法 /// </summary> public sealed class DES_Cryptographycs { #region --- 字段 Begin --- private PaddingMode mPaddingMode; private CipherMode mCipherMode; private byte[] mbyKey; private byte[] mbyIV; #endregion ---

PHP版3DES加解密类

<?php /** * * PHP版3DES加解密类 * * 可与java的3DES(DESede)加密方式兼容 * * @Author:蓝凤(ilanfeng.com) * * @version: V0.1 2011.02.18 * */ class Cc3des{ //加密的时候只用替换key就行了,ecb模式不需要提供iv值 public $key = "0123456789QWEQWEEWQQ1234"; public $iv = "33889955"

Android jni aes加解密,实现文件的加解密,具体实现可以自行修改,上面的代码为简单介绍,下面的是JNI端实现文件加解密,可以修改为字符串加解密

#include "aes.h" #include "modes.h" #include "e_os2.h" #include "aes_locl.h" #include "opensslconf.h" AES_KEY aes; //aes cbc模式加解密用到的向量 unsigned char iv[AES_BLOCK_SIZE]; for (i = 0; i < AES_BLOCK_SIZE; i

加解密算法二:非对称加解密

加密和解密使用不同的密钥的一类加密算法.这类加密算法通常有两个密钥A和B,使用密钥A加密数据得到的密文,只有密钥B可以进行解密操作(即使密钥A也无法解密):相反,使用密钥B加密数据得到的密文,只有密钥A可以解密.这两个密钥分别称为私钥和公钥.私钥就是你个人保留,不能公开的密钥,而公钥则是公开给加解密操作的另一方的.根据不同用途,对数据进行加密所使用的密钥也不相同(有时用公钥加密,私钥解密:有时相反用私钥加密,公钥解密).非对称加密的代表算法是RSA算法.   RSA算法是第一个既能用于数据加密也

3DES 加解密,对长度不限制

#region 3DES /// <summary> /// 3DES加密 /// </summary> /// <param name="strString">需加密的字符串</param> /// <param name="strKey">密匙</param> /// <returns></returns> public static string DES3Encry

PHP 3DES 加解密(CBC模式,pkcs5padding填充)

1.前言:项目中接入第三方支付遇到3DES加密,以前也没用过,搜了好多,都不适用,各种不对,后来自己结合搜到的终于弄正确了,检测地址:http://tool.chacuo.net/crypt3des. 2.下面是类 适用(CBC加密模式,pkcs5padding填充) 代码: /** * @des 3DES加密算法,cbc模式,pkcs5Padding字符填充方式 */ class TDEA{ /** * @param string $crypt 需要加密的字符串 * @param string

python的des和3des加解密

1.加密: pyDes.des(key, [mode], [IV], [pad], [padmode]) pyDes.triple_des(key, [mode], [IV], [pad], [padmode]) key -> Bytes containing the encryption key. 8 bytes for DES, 16 or 24 bytes for Triple DES mode -> Optional argument for encryption type, can