博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP和.NET通用的加密解密函数类,均使用3DES加解密 .
阅读量:6092 次
发布时间:2019-06-20

本文共 2819 字,大约阅读时间需要 9 分钟。

以下为php代码

 

 
PHP加解密函数:
 
    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);    }

以下为.net代码

using System;using System.Security.Cryptography;using System.Text;/**//// /// Crypto3DES 的摘要说明。/// public class Crypto3DES{    public Crypto3DES()    {        //        // TODO: 在此处添加构造函数逻辑        //    }    private System.Text.Encoding encoding;    /**////     /// 获取密匙    ///     public string Key    {        get        {            return "xxxxxxxx";        }    }    /**////     /// 获取或设置加密解密的编码    ///     public System.Text.Encoding Encoding    {        get        {            if( encoding == null )            {                encoding = System.Text.Encoding.UTF8;            }            return encoding;        }        set        {            encoding = value;        }    }    /**////     /// 加密    ///     ///     ///     ///     /// 
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)); } /**//// /// 解密 /// /// /// ///
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) ); }}

 

转载于:https://www.cnblogs.com/wifi/p/3810175.html

你可能感兴趣的文章
【BZOJ】1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
查看>>
cmake总结
查看>>
搜索引擎-倒排索引基础知识
查看>>
baby用品
查看>>
Jquery解析Json格式数据
查看>>
数据加密插件
查看>>
一款很不错的html转xml工具-Html Agility Pack
查看>>
linux安装中文输入法
查看>>
怎样用Java编写一段代码引发内存泄露
查看>>
2012年终总结
查看>>
eclipse导出jar包
查看>>
windows系统下利用MySql命令行进入MySql数据库
查看>>
如何隐藏日历列表的重复和全天事件栏目-方法2
查看>>
Java NIO与IO的差别和比較
查看>>
HTTP/1.1 中 If-Modified-Since 和 If-Unmodified-Since 区别简记
查看>>
怎样炒掉你的创业合作伙伴?
查看>>
[计算机图形学] 基于C#窗口的Bresenham直线扫描算法、种子填充法、扫描线填充法模拟软件设计(一)...
查看>>
UNICODE编码表
查看>>
hadoop Mahout中相似度计算方法介绍(转)
查看>>
C语言嵌入式系统编程修炼之(三)内存操作
查看>>