PHP和.NET通用的加密解密函式類,均使用3DES加解密
最近平臺改造,需要寫一個PHP和.NET下通用的加密解密類,聽說有不少朋友也碰到一些問題,這裡和大家分享一下 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);
//開始加密
$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);
}C#加解密類:using System;
using System.Security.Cryptography;
using System.Text;
$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);
}C#加解密類:using System;
using System.Security.Cryptography;
using System.Text;
/**////
/// Crypto3DES 的摘要說明。
///
public class Crypto3DES
{
public Crypto3DES()
{
//
// TODO: 在此處新增建構函式邏輯
//
}
/// Crypto3DES 的摘要說明。
///
public class Crypto3DES
{
public Crypto3DES()
{
//
// TODO: 在此處新增建構函式邏輯
//
}
private System.Text.Encoding encoding;
/**////
/// 獲取密匙
///
public string Key
{
get
{
return “xxxxxxxx”;
}
}
/// 獲取密匙
///
public string Key
{
get
{
return “xxxxxxxx”;
}
}
/**////
/// 獲取或設定加密解密的編碼
///
public System.Text.Encoding Encoding
{
get
{
if( encoding == null )
{
encoding = System.Text.Encoding.UTF8;
}
return encoding;
}
/// 獲取或設定加密解密的編碼
///
public System.Text.Encoding Encoding
{
get
{
if( encoding == null )
{
encoding = System.Text.Encoding.UTF8;
}
return encoding;
}
set
{
encoding = value;
}
}
{
encoding = value;
}
}
/**////
/// 加密
///
///
///
///
///
public string Encrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
/// 加密
///
///
///
///
///
public string Encrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = Encoding.GetBytes( this.Key );
DES.Mode = CipherMode.ECB;
DES.Padding = PaddingMode.Zeros;
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 ();
/// 解密
///
///
///
///
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();
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) );
}
return UTF8Encoding.UTF8.GetString( DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length) );
}
}
本文轉自dotfun 51CTO部落格,原文連結:http://blog.51cto.com/dotfun/286008
相關文章
- 乾貨分享:通用加解密函式(crypto),Air780E篇解密函式AI
- oracle加密函式Oracle加密函式
- MySQL的加密函式(轉)MySql加密函式
- 逆向工程加密函式:AES加密函式
- sql 簡單加密函式SQL加密函式
- 3DES加解密-EncryptAndDecryptFile3D解密
- requests+MD5加密函式加密函式
- 達夢加密之外部加密函式的半透明列加密加密函式
- Oracle 提供的MD5加密函式Oracle加密函式
- php和.net 的加密解密PHP加密解密
- PHP 支援加解密的函式PHP解密函式
- php ios通用的AES加密方法PHPiOS加密
- MSSQL Sql加密函式 hashbytes 用法簡介SQL加密函式
- JAVA和C# 3DES加密解密JavaC#3D加密解密
- PHP的AES加密類PHP加密
- PHP類和物件函式例項詳解PHP物件函式
- 類函式和物件函式 PHP函式物件PHP
- 非對稱加密中,加解密和簽名加密解密
- 一個.net下通用的Cookie操作類Cookie
- 使用 Phalanger 整合 PHP 和 .NetPHP
- Asp.net 加密解密類ASP.NET加密解密
- .NET Core加解密實戰系列之——對稱加密演算法解密加密演算法
- php中aes加密和rsa加密的區別PHP加密
- Golang 裡的 AES、DES、3DES 加解密,支援 ECB、CBC 等多種模式組合Golang3D解密模式
- CSS樣式中的通用選擇器和偽類選擇器CSS
- 開源.NetCore通用工具庫Xmtool使用連載 - 加密解密篇NetCore加密解密
- 探討NET Core資料進行3DES加密或解密弱金鑰問題3D加密解密
- 母函式詳解和史上最通用最高效的母函式模板函式
- 一個聚合的加解密工具類解密
- 通用函式和條件表示式函式
- 20均線和60均線的關係和看點
- PHP的Sodium加密擴充套件函式了解PHP加密套件函式
- 使用Apache的Base64類實現Base64加解密Apache解密
- PHP閉包函式使用詳解PHP函式
- asp.net 利用NPOI匯出Excel通用類ASP.NETExcel
- c#官方推薦md5通用加密類C#加密
- java反射呼叫set和get方法的通用類Java反射
- Java 3DES 加解/密程式Java3D