一個C#封裝的加密解密類程式碼
using System;
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
using System.Windows.Forms;
namespace Jh.Encrypts
{
public class JhEncrypt
{
///
/// 構造方法
///
public JhEncrypt()
{
}
///
/// 使用預設金鑰字串加密
///
/// 明文
///密文
public static string Encrypt(string original)
{
return Encrypt(original,"JASONHEUNG");
}
///
/// 使用預設金鑰解密
///
/// 密文
///明文
public static string Decrypt(string original)
{
return Decrypt(original,"JASONHEUNG",System.Text.Encoding.Default);
}
///
/// 使用給定金鑰解密
///
/// 密文
/// 金鑰
///明文
public static string Decrypt(string original, string key)
{
return Decrypt(original,key,System.Text.Encoding.Default);
}
///
/// 使用預設金鑰解密,返回指定編碼方式明文
///
/// 密文
/// 編碼方式
///明文
public static string Decrypt(string original,Encoding encoding)
{
return Decrypt(original,"JASONHEUNG",encoding);
}
///
/// 使用給定金鑰加密
///
/// 原始文字
/// 金鑰
/// 字元編碼方案
///密文
public static string Encrypt(string original, string key)
{
byte[] buff = System.Text.Encoding.Default.GetBytes(original);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return Convert.ToBase64String(Encrypt(buff,kb));
}
///
/// 使用給定金鑰解密
///
/// 密文
/// 金鑰
/// 字元編碼方案
///明文
public static string Decrypt(string encrypted, string key,Encoding encoding)
{
byte[] buff = Convert.FromBase64String(encrypted);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return encoding.GetString(Decrypt(buff,kb));
}
///
/// 生成MD5摘要
///
/// 資料來源
///摘要
public static byte[] MakeMD5(byte[] original)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
byte[] keyhash = hashmd5.ComputeHash(original);
hashmd5 = null;
return keyhash;
}
///
/// 使用給定金鑰加密
///
/// 明文
/// 金鑰
///密文
public static byte[] Encrypt(byte[] original, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMD5(key);
des.Mode = CipherMode.ECB;
return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
}
///
/// 使用給定金鑰解密資料
///
/// 密文
/// 金鑰
///明文
public static byte[] Decrypt(byte[] encrypted, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMD5(key);
des.Mode = CipherMode.ECB;
return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
}
///
/// 使用給定金鑰加密
///
/// 原始資料
/// 金鑰
///密文
public static byte[] Encrypt(byte[] original)
{
byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
return Encrypt(original,key);
}
///
/// 使用預設金鑰解密資料
///
/// 密文
/// 金鑰
///明文
public static byte[] Decrypt(byte[] encrypted)
{
byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
return Decrypt(encrypted,key);
}
}
}
using System.Text;
using System.Globalization;
using System.Security.Cryptography;
using System.Windows.Forms;
namespace Jh.Encrypts
{
public class JhEncrypt
{
///
/// 構造方法
///
public JhEncrypt()
{
}
///
/// 使用預設金鑰字串加密
///
/// 明文
///
public static string Encrypt(string original)
{
return Encrypt(original,"JASONHEUNG");
}
///
/// 使用預設金鑰解密
///
/// 密文
///
public static string Decrypt(string original)
{
return Decrypt(original,"JASONHEUNG",System.Text.Encoding.Default);
}
///
/// 使用給定金鑰解密
///
/// 密文
/// 金鑰
///
public static string Decrypt(string original, string key)
{
return Decrypt(original,key,System.Text.Encoding.Default);
}
///
/// 使用預設金鑰解密,返回指定編碼方式明文
///
/// 密文
/// 編碼方式
///
public static string Decrypt(string original,Encoding encoding)
{
return Decrypt(original,"JASONHEUNG",encoding);
}
///
/// 使用給定金鑰加密
///
/// 原始文字
/// 金鑰
/// 字元編碼方案
///
public static string Encrypt(string original, string key)
{
byte[] buff = System.Text.Encoding.Default.GetBytes(original);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return Convert.ToBase64String(Encrypt(buff,kb));
}
///
/// 使用給定金鑰解密
///
/// 密文
/// 金鑰
/// 字元編碼方案
///
public static string Decrypt(string encrypted, string key,Encoding encoding)
{
byte[] buff = Convert.FromBase64String(encrypted);
byte[] kb = System.Text.Encoding.Default.GetBytes(key);
return encoding.GetString(Decrypt(buff,kb));
}
///
/// 生成MD5摘要
///
/// 資料來源
///
public static byte[] MakeMD5(byte[] original)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
byte[] keyhash = hashmd5.ComputeHash(original);
hashmd5 = null;
return keyhash;
}
///
/// 使用給定金鑰加密
///
/// 明文
/// 金鑰
///
public static byte[] Encrypt(byte[] original, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMD5(key);
des.Mode = CipherMode.ECB;
return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
}
///
/// 使用給定金鑰解密資料
///
/// 密文
/// 金鑰
///
public static byte[] Decrypt(byte[] encrypted, byte[] key)
{
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = MakeMD5(key);
des.Mode = CipherMode.ECB;
return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
}
///
/// 使用給定金鑰加密
///
/// 原始資料
/// 金鑰
///
public static byte[] Encrypt(byte[] original)
{
byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
return Encrypt(original,key);
}
///
/// 使用預設金鑰解密資料
///
/// 密文
/// 金鑰
///
public static byte[] Decrypt(byte[] encrypted)
{
byte[] key = System.Text.Encoding.Default.GetBytes("JASONHEUNG");
return Decrypt(encrypted,key);
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-536616/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c#封裝DBHelper類C#封裝
- c# Lambda操作類封裝C#封裝
- RSA加密解密示例程式碼加密解密
- 一、類的封裝性封裝
- C# MD5 加密,解密C#加密解密
- 程式碼改變世界 | 如何封裝一個簡單的 Koa封裝
- 【JavaScript框架封裝】實現一個類似於JQuery的動畫框架的封裝JavaScript框架封裝jQuery動畫
- delphi加密C#解密(AES-256)加密C#解密
- C#開發中常用的加密解密方法C#加密解密
- 一個聚合的加解密工具類解密
- 【JavaScript框架封裝】實現一個類似於JQuery的CSS樣式框架的封裝JavaScript框架封裝jQueryCSS
- 使用C++/CLI呼叫C#封裝類庫C++C#封裝
- Base64工具類(加密、解密)加密解密
- 一款實用的.NET Core加密解密工具類庫加密解密
- 序列密碼的加密與解密密碼加密解密
- 文字加密:常見的密碼加密解密方法加密密碼解密
- 基於C#實現-維吉尼亞密碼加密、解密C#密碼加密解密
- 封裝一個通用的PopupWindow封裝
- C#開發中常用加密解密方法解析C#加密解密
- 加密和解密的另個應用加密解密
- 顧客類的派生(C#程式碼)C#
- 第三個OpenGL程式,shaders _ 後續 之 封裝著色器類封裝
- JavaFx 生成二維碼工具類封裝Java封裝
- 封裝一個自己的js庫封裝JS
- 一個簡單的 Amqp 封裝MQ封裝
- C#通過java生成的RSA公鑰加密和解密C#Java加密解密
- C# Base64加解密、MD5加密C#解密加密
- python程式碼怎麼封裝Python封裝
- SKILL指令碼的加密與解密及使用指令碼加密解密
- php用curl封裝一個http請求類(鏈式呼叫)PHP封裝HTTP
- (3)Tcp Socket程式設計的封裝類 TcpListener/TcpClientTCP程式設計封裝client
- 一次Android動畫工具類的封裝Android動畫封裝
- 加密解密加密解密
- 密碼學系列——常見的加密方式(c#程式碼實操)密碼學加密C#
- 十五、類與封裝的概念封裝
- 介面加密傳輸設計及AES加解密程式碼DEMO加密解密
- Go 如何實現 PHP 的密碼加密解密GoPHP密碼加密解密
- retrofit如何配合Rxjava封裝程式碼RxJava封裝
- Android Room封裝成一個類似Redis的快取資料庫的效果AndroidOOM封裝Redis快取資料庫