zoukankan      html  css  js  c++  java
  • 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) );
        }
    }
  • 相关阅读:
    中国历史年代史的一些总结-缕清上下五千年
    struts2 自己定义表单
    &quot;What&#39;s New&quot; WebPart in SharePoint
    Tomcat+Servlet登录页面实例
    JAVA原始的导出excel文件,快捷通用 方便 还能够导出word文档哦
    Android开发 -- Bootloader
    NorFlash、NandFlash、eMMC比较区别【转】
    strspn() 和 strcspn() 函数【转】
    Device Tree(一):背景介绍【转】
    设备树使用手册【转】
  • 原文地址:https://www.cnblogs.com/wifi/p/3810175.html
Copyright © 2011-2022 走看看