加解密一般都很常用到
以前為了密碼加解密也收集了幾種
不過也忘了是哪看來的
放著以後常常都用的到也不需要找來找去.....
不過好像還有好多方式
如果有看到更好的就慢慢放上來.....
//Base64加密1
public string EncodeString(string toEncode)
{
try
{
byte[] toEncodeAsBytes = Encoding.UTF8.GetBytes(toEncode);
return Convert.ToBase64String(toEncodeAsBytes);
}
catch (Exception ex)
{
//thorow new Exception();
}
}
//Base64加密2
public string base64Encode(string data)
{
try
{
byte[] encData_byte = new byte[data.Length];
encData_byte = System.Text.Encoding.UTF8.GetBytes(data);
string encodedData = Convert.ToBase64String(encData_byte);
return encodedData;
}
catch(Exception e)
{
throw new Exception("Error in base64Encode" + e.Message);
}
}
//Base64加密3
string strVal = "Test";
byte[] strByte = System.Text.Encoding.Default.GetBytes(a);
strVal = Convert.ToBase64String(strByte);
return strVal;
//Base64解密1
public string DecodeString(string toDecrypt)
{
try
{
byte[] encodedDataAsBytes = Convert.FromBase64String(toDecrypt.Replace(" ", "+"));
return Encoding.UTF8.GetString(encodedDataAsBytes);
}
catch (Exception ex)
{
//thorow new Exception();
}
}
//Base64解密2
public string base64Decode(string data)
{
try
{
System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
System.Text.Decoder utf8Decode = encoder.GetDecoder();
byte[] todecode_byte = Convert.FromBase64String(data);
int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
char[] decoded_char = new char[charCount];
utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);
string result = new String(decoded_char);
return result;
}
catch(Exception e)
{
throw new Exception("Error in base64Decode" + e.Message);
}
}
//Base64解密3
string strVal = "Test";
byte[] strByte = Convert.FromBase64String(a);
strVal = System.Text.Encoding.Default.GetString(strByte);
return strVal;
上面是最常用到的Base64
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public class ScrambledNumber
{
public static string ScrambledKey = "Key值可自定";
public static string Encrypt(string pToEncrypt)
{
return Encrypt(pToEncrypt, ScrambledKey);
}
public static string Decrypt(string pToDecrypt)
{
return Decrypt(pToDecrypt, ScrambledKey);
}
public static string Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
byte[] bs1 = Encoding.Default.GetBytes(pToEncrypt);
dESCryptoServiceProvider.Key = Encoding.ASCII.GetBytes(sKey);
dESCryptoServiceProvider.IV = Encoding.ASCII.GetBytes(sKey);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream =
new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateEncryptor(), CryptoStreamMode.Write);
cryptoStream.Write(bs1, 0, bs1.Length);
cryptoStream.FlushFinalBlock();
StringBuilder stringBuilder = new StringBuilder();
byte[] bs2 = memoryStream.ToArray();
for (int i = 0; i < bs2.Length; i++)
{
byte b = bs2[i];
stringBuilder.AppendFormat("{0:X2}", b);
}
stringBuilder.ToString();
return stringBuilder.ToString();
}
public static string Decrypt(string pToDecrypt, string sKey)
{
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
byte[] bs = new byte[pToDecrypt.Length/2];
for (int i = 0; i < pToDecrypt.Length/2; i++)
{
int j = Convert.ToInt32(pToDecrypt.Substring(i*2, 2), 16);
bs[i] = (byte) j;
}
dESCryptoServiceProvider.Key = Encoding.ASCII.GetBytes(sKey);
dESCryptoServiceProvider.IV = Encoding.ASCII.GetBytes(sKey);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream =
new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Write);
cryptoStream.Write(bs, 0, bs.Length);
cryptoStream.FlushFinalBlock();
new StringBuilder();
return Encoding.Default.GetString(memoryStream.ToArray());
}
}
上面應該是DES加解密
string Pasword = FormsAuthentication.HashPasswordForStoringInConfigFile(要加密字串, "MD5");
string Pasword = FormsAuthentication.HashPasswordForStoringInConfigFile(要加密字串, "SHA1");
public static string md5encrypt(string phrase)
{
UTF8Encoding encoder = new UTF8Encoding();
MD5CryptoServiceProvider md5hasher = new MD5CryptoServiceProvider();
byte[] hashedDataBytes = md5hasher.ComputeHash(encoder.GetBytes(phrase));
return byteArrayToString(hashedDataBytes);
}
public static string sha1encrypt(string phrase)
{
UTF8Encoding encoder = new UTF8Encoding();
SHA1CryptoServiceProvider sha1hasher = new SHA1CryptoServiceProvider();
byte[] hashedDataBytes = sha1hasher.ComputeHash(encoder.GetBytes(phrase));
return byteArrayToString(hashedDataBytes);
}
public static string sha256encrypt(string phrase)
{
UTF8Encoding encoder = new UTF8Encoding();
SHA256Managed sha256hasher = new SHA256Managed();
byte[] hashedDataBytes = sha256hasher.ComputeHash(encoder.GetBytes(phrase));
return byteArrayToString(hashedDataBytes);
}
public static string sha384encrypt(string phrase)
{
UTF8Encoding encoder = new UTF8Encoding();
SHA384Managed sha384hasher = new SHA384Managed();
byte[] hashedDataBytes = sha384hasher.ComputeHash(encoder.GetBytes(phrase));
return byteArrayToString(hashedDataBytes);
}
public static string sha512encrypt(string phrase)
{
UTF8Encoding encoder = new UTF8Encoding();
SHA512Managed sha512hasher = new SHA512Managed();
byte[] hashedDataBytes = sha512hasher.ComputeHash(encoder.GetBytes(phrase));
return byteArrayToString(hashedDataBytes);
}
public static string byteArrayToString(byte[] inputArray)
{
StringBuilder output = new StringBuilder("");
for (int i = 0; i < inputArray.Length; i++)
{
output.Append(inputArray[i].ToString("X2"));
}
return output.ToString();
}
上面是SHA &MD5等等的方式
幾乎都是參考別人的可是.....忘了出處了真是不好意思
文章標籤
全站熱搜
