C#通用類庫--加密解密類
//作用:加密解密
//作者:劉典武
//時間:2010-12-01using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace Ecan
{
publicclass EcanSecurity
{
/*MD5是message-digest algorithm 5(資訊-摘要演算法)的縮寫,
* 被廣泛用於加密和解密技術上,它可以說是檔案的“數字指紋”。
* 任何一個檔案,無論是可執行程式、影象檔案、臨時檔案或者其他任何型別的檔案,
* 也不管它體積多大,都有且只有一個獨一無二的MD5資訊值,並且如果這個檔案被修改過,
* 它的MD5值也將隨之改變。因此,我們可以通過對比同一檔案的MD5值,
* 來校驗這個檔案是否被“篡改”過。
///</summary>///<param name="str">要加密的字串</param>///<returns>加密後的字串</returns>///publicstring md5_Encode(string str)
{
MD5 m =new MD5CryptoServiceProvider();
byte[] data = Encoding.Default.GetBytes(str);
byte[] result
string ret1 ="";
try
{
for (int j =0; j < result.Length; j++)
{
ret1 += result[j].ToString("x").PadLeft(2, '0');
}
return ret1;
}
catch
{
return str;
}
}
///<summary>/// 簡單加密函式
///</summary>///<param name="str">要加密的字串</param>///<returns>返回加密後的字串</returns>///publicstring simple_Encode(string str)
{
string s ="";
try
{
for (int i =0; i < str.Length; i++)
{
s += (char)(str[i] +10-1*2);
}
return s;
}
catch
{
return str;
}
}
///<summary>/// 簡單解密函式
///</summary>///<param name="str">要解密的字串</param>///<returns>返回解密後的字串</returns>///publicstring simple_Decode(string str)
{
string s ="";
try
{
for (int i =0; i < str.Length; i++)
{
s += (char)(str[i] -10+1*2);
}
return s;
}
catch
{
return str;
}
}
//預設金鑰向量privatestaticbyte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
///<summary>/// 對稱加密法加密函式
///</summary>///<param name="encryptString">待加密的字串</param>///<param name="encryptKey">加密金鑰,要求為8位</param>///<returns>加密成功返回加密後的字串,失敗返回源串</returns>publicstring symmetry_Encode(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP =new DESCryptoServiceProvider();
MemoryStream mStream =new MemoryStream();
CryptoStream cStream =new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch
{
return encryptString;
}
}
///<summary>/// 對稱加密法解密函式
///</summary>///<param name="decryptString">待解密的字串</param>///<param name="decryptKey">解密金鑰,要求為8位,和加密金鑰相同</param>///<returns>解密成功返回解密後的字串,失敗返源串</returns>publicstring symmetry_Decode(string decryptString, string decryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP =new DESCryptoServiceProvider();
MemoryStream mStream =new MemoryStream();
CryptoStream cStream =new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
}
}
相關推薦
C#通用類庫--加密解密類
//類名:EcanSecurity//作用:加密解密//作者:劉典武//時間:2010-12-01using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;using S
C#自定義RSA加密解密及RSA簽名和驗證類實例
狀態 share normal evel thumb weight encrypt security clas 本文實例講述了C#自定義RSA加密解密及RSA簽名和驗證類。分享給大家供大家參考。具體分析如下: 這個C#類自定義RSA加密解密及RSA簽名和驗證,包含了RSA
C# 常見加密解密類
ret static ostream 代碼示例 normal text summary 封裝 toolbar 常見的加密方式分為可逆和不可逆兩種方式 可逆:RSA,AES,DES等 不可逆:常見的MD5,SHAD等 常見的加密方式封裝到一個Pass
Java的bouncycastle密碼庫的RSA的加密,解密,類
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; import org.bouncycastle.crypto.generators.*; import org.bouncycastle.crypto.params
C#密碼加密解密類
using System; using System.Globalization; using System.IO; using System.Security.Cryptography; using System.Text; namespace Utils { /
[轉][C#]加密解密類
{ public static class Crypter { private static string FDefaultPassword = typeof(Crypter).FullName; public static string Default
php和c#一致的DES加密解密演算法類
DES加解密演算法,在C#與PHP中的通用類。 注意: 1、類中的祕鑰key跟向量iv,均用的同樣的值 2、編碼均採用的utf-8 以下為具體程式碼,可以直接複製去進行實際測試 C#版程式碼: using System; using System.Data;
java文本文件加密解密類
file you location ble jbutton getpath ini cati absolute 原文:http://www.open-open.com/code/view/1420031154765 import java.awt.*; impor
MD5加密解密類(asp.net)&使用MD5過時處理
bytes div height crypt then .text ble tco doc 加密類 #region ========加密======== /// <summary> /// 加密 /// </summary> /
php aes加密解密類(兼容php5、php7)
bytes pri rip dom ase lee vat idea cipher <?php /** * @desc:php aes加密解密類 * @author [Lee] <[<[email protected]>]> */ class
PHP針對數字的加密解密類,可直接使用
<?phpnamespace app;/** * 加密解密類 * 該演算法僅支援加密數字。比較適用於資料庫中id欄位的加密解密,以及根據數字顯示url的加密。 * @author 深秋的竹子 * @ver
PHP中AES加密解密類
我們在工作中會遇到各種加密,下面就是PHP中AES加密解密的類 <?php class Aes { /** * var string&nbs
MD5 加密解密類(通過Key 對資料進行加密)直接複製使用
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.spec.S
java常用工具類之DES和Base64加密解密類
一、DES加密和解密 package com.itjh.javaUtil; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import
PHP、JAVA、C#、Object-C、Android 通用的DES加密解密
PHP加密解密: class JoDES { private static $_instance = NULL; /** * @return JoDES */ public static function sh
PHP DES加密解密類
今天寫App介面的時候需要傳遞加密資料給APP端,於是就寫了下面的DES加密類,親測正確程式碼如下 class CryptDes { function __construct(){ $this->key = 'codelovers'; //金
C# 實現 JAVA AES加密解密[原創]
com base gets tran con spec ole tor 技術分享 以下是網上普遍能收到的JAVA AES加密解密方法。 因為裏面用到了KeyGenerator 和 SecureRandom,但是.NET 裏面沒有這2個類。無法使用安全隨機數生成KEY。 我們
C#字符串加密解密方法實例
oba div 包含 stream ren 無限級 toarray efault .get 本文實例講述了C#字符串加密解密方法。分享給大家供大家參考。具體如下: 代碼如下: #region 加密解密 static string encryptKey= “Oyea”
Java 常用類庫 之 比較類 Comparable
instance 多少 一個 public 類關系 name length compare 實例 http://www.verejava.com/?id=169930999133100 /** 知識點: 比較類 Comparable 題目: 將某班學生按數
C#與Java AES 加密解密
參考文件:https://www.cnblogs.com/xbzhu/p/7064642.html 前幾天對接Java介面,需要C#加密引數,Java解密。奈何網上找了一堆大同小異的加解密方法都跟Jaca加密的密文不一致,Java介面也無法解密,直到看見上面連結的第二種方法。能夠正常的解密Java加密的