加解密一般都很常用到
以前為了密碼加解密也收集了幾種
不過也忘了是哪看來的
放著以後常常都用的到也不需要找來找去.....
不過好像還有好多方式
如果有看到更好的就慢慢放上來.....
//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等等的方式
幾乎都是參考別人的可是.....忘了出處了真是不好意思
全站熱搜
留言列表