1、方法一 (不可逆加密)
public string EncryptPassword(string PasswordString,string PasswordFormat )
{
string encryptPassword = null;
if (PasswordFormat="SHA1"){
encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString
,"SHA1");
}
elseif (PasswordFormat="MD5")
{ encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString
,"MD5");
}
return encryptPassword ;
}
2、方法二 (可逆加密)
public interface IBindesh
{
string encode(string str);
string decode(string str);
}
public class EncryptionDecryption : IBindesh
{
public string encode(string str)
{
string htext = "";
for ( int i = 0; i < str.Length; i++)
{
htext = htext + (char) (str[i] + 10 - 1 * 2);
}
return htext;
}
public string decode(string str)
{
string dtext = "";
for ( int i=0; i < str.Length; i++)
{
dtext = dtext + (char) (str[i] - 10 + 1*2);
}
return dtext;
}
3、方法三 (可逆加密)
const string KEY_64 = "VavicApp";//注意了,是8个字符,64位
const string IV_64 = "VavicApp";
public string Encode(string data)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey,
byIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cst);
sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}public string Decode(string data)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(data);
}
catch
{
return null;
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey,
byIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}
4、MD5不可逆加密
(32位加密)
public string GetMD5(string s, string _input_charset)
{
/**//// <summary>
/// 与ASP兼容的MD5加密算法
/// </summary>
MD5 md5 = new MD5CryptoServiceProvider();
byte[] t = md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(s));
StringBuilder sb = new StringBuilder(32);
for (int i = 0; i < t.Length; i++)
{
sb.Append(t[i].ToString("x").PadLeft(2, '0'));
}
return sb.ToString();
}
(16位加密)
public static string GetMd5Str(string ConvertString)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
string t2 =
BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4,
;
t2 = t2.Replace("-", "");
return t2;
}
5、加解文本文件
//加密文件
private static void EncryptData(String inName, String outName, byte[] desKey, byte[]
desIV)
{
//Create the file streams to handle the input and output files.
FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
fout.SetLength(0);
//Create variables to help with read and write.
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
long rdlen = 0; //This is the total number of bytes written.
long totlen = fin.Length; //This is the total length of the input file.
int len; //This is the number of bytes to be written at a time.
DES des = new DESCryptoServiceProvider();
CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV),
CryptoStreamMode.Write);
//Read from the input file, then encrypt and write to the output file.
while (rdlen < totlen)
{
len = fin.Read(bin, 0, 100);
encStream.Write(bin, 0, len);
rdlen = rdlen + len;
}
encStream.Close();
fout.Close();
fin.Close();
}
//解密文件
private static void DecryptData(String inName, String outName, byte[] desKey, byte[]
desIV)
{
//Create the file streams to handle the input and output files.
FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
fout.SetLength(0);
//Create variables to help with read and write.
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
long rdlen = 0; //This is the total number of bytes written.
long totlen = fin.Length; //This is the total length of the input file.
int len; //This is the number of bytes to be written at a time.
DES des = new DESCryptoServiceProvider();
CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(desKey, desIV),
CryptoStreamMode.Write);
//Read from the input file, then encrypt and write to the output file.
while (rdlen < totlen)
{
len = fin.Read(bin, 0, 100);
encStream.Write(bin, 0, len);
rdlen = rdlen + len;
}
encStream.Close();
fout.Close();
fin.Close();
}
6、DES
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace Component
{
public class Security
{
public Security()
{
}
//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
/**//**//**//// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string EncryptDES(string encryptString, string encryptKey)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0,
);
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>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string DecryptDES(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# 加密解密算法
本示例"C#加密解密算法demo"提供了一组实用的加密和解密方法,适用于不同的场景。下面将详细讨论这些知识点。 1. **加密与解密的基本概念**: - 加密是将明文数据转化为无法理解的形式,以保护信息不被未经授权的...
在"C#加密解密算法实例"项目中,`EncryptDecipherAlgorithm`可能包含了具体实现这些算法的代码示例,包括如何创建和配置加密解密对象,如何处理密钥和初始化向量,以及如何进行加解密操作的完整流程。通过学习这些...
文件名`SSL.EIA.HelpersTests`可能表示一个测试项目,用于验证上述加密解密功能的正确性。通常,这会包含一系列的单元测试,用以确保加密和解密过程的正确性,以及在不同情况下的行为一致性。 总的来说,理解并熟练...
C# .net MD5加密解密工具及加密解密类。使用方便,可直接下载加密解密代码在项目中使用。
### C# 实现 AES 加密解密算法 #### 概述 在计算机科学与信息安全领域,数据加密技术是一项至关重要的技术。AES(Advanced Encryption Standard,高级加密标准)是一种广泛使用的对称加密算法,用于保护敏感数据的...
### C# 可逆加密解密算法解析 #### 一、引言 在现代软件开发中,数据安全显得尤为重要。为了保护敏感数据不被非法访问或窃取,开发者需要使用各种加密技术对数据进行处理。C#作为一种广泛使用的编程语言,在.NET...
从给定的文件信息来看,我们正在探讨的主题是“字符串加密解密算法”,这是一个在信息安全领域极为关键的概念。加密解密算法是用于保护数据安全、防止未经授权的数据访问或篡改的技术核心。以下是对这一主题的深入...
C#编写的加密解密小工具,可以对DES、RSA、Base64、SHA、MD5算法,轻松实现数据加密解密需求。 使用方法可浏览博文《C#集成数据加密算法,包含DES、RSA、Base64、SHA、MD5算法,轻松实现数据加密解密需求》
**C# RSA加密解密详解** 在信息安全领域,加密技术是一种至关重要的手段,用于保护数据的隐私和安全性。RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛应用于网络通信、数据存储等领域。C#作为.NET...
本示例源代码集合是由程序员肖秋峰提供的,专注于C#语言实现的文本加密解密算法,共包括六个章节,涵盖了100个不同的实例。这些示例旨在帮助开发者理解和应用各种加密技术,以保护敏感信息不被未经授权的访问。 ...
MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证
在C#编程中,对称加密是一种常见的数据保护方法,它使用相同的密钥进行加密和解密过程。这里我们讨论的类"SymmetricMethod"是一个自定义的C#类,用于实现对称加密算法,特别是使用了RijndaelManaged算法。Rijndael是...
在本文中,我们将深入探讨DES加密解密算法,并展示如何在C++和C#这两种编程语言中实现这一算法。 首先,理解DES的工作原理至关重要。DES算法主要由以下四个步骤组成:初始置换(IP)、密钥扩展、16轮Feistel网络和...
本文将围绕"C#加密解密源码"这一主题,深入探讨C#中加密解密的基本原理、常用算法以及如何通过源代码实现。 1. 加密与解密基础 - 加密:将明文转换为密文的过程,目的是保护数据的安全,防止未经授权的访问。 - ...
一个简单的字符串加密解密算法,使用C#语言实现。。。
c# 和 c++ 通用加密解密 。有c#和c++的例子代码。亲测可用 c# 和 c++ 通用加密解密 。有c#和c++的例子代码。亲测可用 c# 和 c++ 通用加密解密 。有c#和c++的例子代码。亲测可用 c# 和 c++ 通用加密解密 。有c#和c++...
本资源包含了一个全面的C#文本加密解密算法示例源代码集合,这对于开发者来说是一个宝贵的参考资料。 1. **基础概念**: - **加密**:加密是将明文(可读数据)转换为密文(不可读数据)的过程,以防止未经授权的...
本篇将深入探讨如何利用C#和AES(高级加密标准)算法来创建一个文件加密解密工具。 AES是一种对称加密算法,广泛应用于数据保护,因为它既高效又安全。它的基本工作原理是通过一系列复杂的数学运算(如置换、混淆等...
一、C#加密技术基础 C#中实现文件加密主要依赖于.NET Framework提供的加密类库,如System.Security.Cryptography命名空间下的各种加密算法。这些算法包括对称加密(如AES、DES、TripleDES)、非对称加密(RSA、DSA...