C#可逆加密算法收集

最近要用到這個順帶收集下

以下是關于對稱加密算法的C#實現代碼,大家可以根據需要更改不同的算法,文中以Rijndael算法爲例:view plaincopy to clipboardprint?

using System;

using System.IO;

using System.Security.Cryptography;

using System.Text;

namespace DataCrypto

{

/// <summary>

/// 對稱加密算法類

/// </summary>

public class SymmetricMethod

{

private SymmetricAlgorithm mobjCryptoService;

private string Key;

/// <summary>

/// 對稱加密類的構造函數

/// </summary>

public SymmetricMethod()

{

mobjCryptoService = new RijndaelManaged();

Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";

}

/// <summary>

/// 獲得密鑰

/// </summary>

/// <returns>密鑰</returns>

private byte[] GetLegalKey()

{

string sTemp = Key;

mobjCryptoService.GenerateKey();

byte[] bytTemp = mobjCryptoService.Key;

int KeyLength = bytTemp.Length;

if (sTemp.Length > KeyLength)

sTemp = sTemp.Substring(0, KeyLength);

else if (sTemp.Length < KeyLength)

sTemp = sTemp.PadRight(KeyLength, ' ');

return ASCIIEncoding.ASCII.GetBytes(sTemp);

}

/// <summary>

/// 獲得初始向量IV

/// </summary>

/// <returns>初試向量IV</returns>

private byte[] GetLegalIV()

{

string sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";

mobjCryptoService.GenerateIV();

byte[] bytTemp = mobjCryptoService.IV;

int IVLength = bytTemp.Length;

if (sTemp.Length > IVLength)

sTemp = sTemp.Substring(0, IVLength);

else if (sTemp.Length < IVLength)

sTemp = sTemp.PadRight(IVLength, ' ');

return ASCIIEncoding.ASCII.GetBytes(sTemp);

}

/// <summary>

/// 加密方法

/// </summary>

/// <param name="Source">待加密的串</param>

/// <returns>經過加密的串</returns>

public string Encrypto(string Source)

{

byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);

MemoryStream ms = new MemoryStream();

mobjCryptoService.Key = GetLegalKey();

mobjCryptoService.IV = GetLegalIV();

ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();

CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);

cs.Write(bytIn, 0, bytIn.Length);

cs.FlushFinalBlock();

ms.Close();

byte[] bytOut = ms.ToArray();

return Convert.ToBase64String(bytOut);

}

/// <summary>

/// 解密方法

/// </summary>

/// <param name="Source">待解密的串</param>

/// <returns>經過解密的串</returns>

public string Decrypto(string Source)

{

byte[] bytIn = Convert.FromBase64String(Source);

MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);

mobjCryptoService.Key = GetLegalKey();

mobjCryptoService.IV = GetLegalIV();

ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();

CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);

StreamReader sr = new StreamReader(cs);

return sr.ReadToEnd();

}

}

}

加密解密、信息摘要算法收集
MD5算法研究 綜述   md5的全稱是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest開發出來,經md2、md3和md4發展而來。...查看完整版>>加密解密、信息摘要算法收集
 
[組件代碼共享]可逆加密,支持中文,支持密鑰,支持ASP,加密後的密文每次都不同,且可隨意改變算法
可逆加密組件====================== 使用方法 ==========================Dim objEncryptSet objEncrypt = Server.CreateObject("myEncrypt.clsEncrypt") Dim strReturn '加密後文本Dim strValue '加密前文本'加密...查看完整版>>[組件代碼共享]可逆加密,支持中文,支持密鑰,支持ASP,加密後的密文每次都不同,且可隨意改變算法
 
c# MD5加密算法的一個實例
環境:vs.net2005/sql server2000/xp測試通過1.MD5 16位加密實例using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography; namespace md5{ class Program { ...查看完整版>>c# MD5加密算法的一個實例
 
c# MD5加密算法的實例
環境:vs.net2005/sql server2000/xp測試通過1.MD5 16位加密實例 using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;namespace md5{ class Program ...查看完整版>>c# MD5加密算法的實例
 
DES加密算法在C#下的實現
此程序分兩部分,第一部分爲主程序,另一部分爲函數庫 本程序中用int[]表示char的2進制形式,如'a'=int{0,1,1,0,0,0,0,1} 下面副程序 本程序在C# 2005下通過。。#region Using directivesusing System;using Sy...查看完整版>>DES加密算法在C#下的實現
 
MD5加密算法(16位,32位)的C#,VB的實現
以下爲MD5算法用c#的實現//MD5.cs//MD5 16-bit,32-bits algorithm implemented in C#using System;using System.Text;namespace Encrypter{ /// <summary> /// Summary description for MD5. /// </summary...查看完整版>>MD5加密算法(16位,32位)的C#,VB的實現
 
一個可逆加密的例子
一個可逆加密的例子http://lucky_elove.www1.dotnetplayground.com/下面的這個例子實現了一個可逆加密的例子功能。代碼很簡單,這裏就不多解釋了。代碼如下:EncString.aspx 一個可逆加密的例子 ...查看完整版>>一個可逆加密的例子
 
一個可逆加密的例子
一個可逆加密的例子作者:孟憲會 出自:【孟憲會之精彩世界】 發布日期:2003年5月23日 8點25分47秒 下面的代碼實現了一個可逆加密的方法。可以用于對Cookie,QueryString等加密處理 。 一個可逆加密的例子 ...查看完整版>>一個可逆加密的例子
 
一個可逆加密的例子
下面的代碼實現了一個可逆加密的方法。可以用于對Cookie,QueryString等加密處理。aspx.cc/Exam/EncryptString.aspx" target="_parent">查看例子VB.NET代碼<%@ Page Language="vb" A...查看完整版>>一個可逆加密的例子
 
 
回到王朝網路首頁