日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

加密和解密类

發布時間:2023/12/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 加密和解密类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Security.Cryptography;
using?System.IO;
using?System.Web;

namespace?Thewolfs.Framework.Text
{
????
///?<summary>
????
///?加密類
????
///?</summary>
????public?class?TwEncode
????{

????????
#region?MD5加密類型,0為32位md5加密,1為64位md5加密
????????
///?<summary>
????????
///?密碼加密函數
????????
///?</summary>
????????
///?<param?name="encrypType">加密類型,0為32位md5加密,1為64位md5加密</param>
????????
///?<param?name="originalStr">加密前字符串</param>
????????
///?<returns>md5加密后的字符串</returns>
????????private?static?string?EncryptPass(byte?encrypType,?string?originalStr)
????????{
????????????
string?strReturn?=?string.Empty;
????????????
switch?(encrypType)
????????????{
????????????????
case?0:
????????????????????strReturn?
=?System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(originalStr,?"MD5");
????????????????????
break;
????????????????
default:
????????????????????strReturn?
=?System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(originalStr,?"MD5");
????????????????????
break;
????????????}
????????????
return?strReturn;
????????????
//throw?new?System.NotImplementedException();
????????}

????????
///?<summary>
????????
///?32位的MD5加密
????????
///?</summary>
????????
///?<param?name="toCryString"></param>
????????
///?<returns></returns>
????????public?static?string?EncodeByMD5_32(string?toCryString)
????????{
????????????
return?TwEncode.EncryptPass(0,?toCryString);
????????}

????????
///?<summary>
????????
///?64位的MD5加密
????????
///?</summary>
????????
///?<param?name="toCryString"></param>
????????
///?<returns></returns>
????????public?static?string?EncodeByMD5_64(string?toCryString)
????????{
????????????
return?TwEncode.EncryptPass(1,?toCryString);
????????}

????????
#endregion

????????
#region?Base64加密碼?/?解密
????????
///?<summary>
????????
///?用Base64加密
????????
///?</summary>
????????
///?<param?name="strText"></param>
????????
///?<returns></returns>
????????public?static?string?EncodeByBase64(String?strText)
????????{
????????????
return?Encrypt(strText,?"&%#@?,:*");
????????}

????????
///?<summary>
????????
///?解密Base64加密的密碼
????????
///?</summary>
????????
///?<param?name="strText"></param>
????????
///?<returns></returns>
????????public?static?String?DecodeByBase64(String?strText)
????????{
????????????
return?Decrypt(strText,?"&%#@?,:*");
????????}

????????
///?<summary>
????????
///?Base64加密函數
????????
///?</summary>
????????
///?<param?name="strText"></param>
????????
///?<param?name="strEncrKey"></param>
????????
///?<returns></returns>
????????private?static?String?Encrypt(String?strText,?String?strEncrKey)
????????{
????????????Byte[]?byKey?
=?{?};
????????????Byte[]?IV?
=?{?0x12,?0x34,?0x56,?0x78,?0x90,?0xAB,?0xCD,?0xEF?};
????????????
try
????????????{
????????????????byKey?
=?System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0,?8));
????????????????DESCryptoServiceProvider?des?
=?new?DESCryptoServiceProvider();
????????????????Byte[]?inputByteArray?
=?Encoding.UTF8.GetBytes(strText);
????????????????MemoryStream?ms?
=?new?MemoryStream();
????????????????CryptoStream?cs?
=?new?CryptoStream(ms,?des.CreateEncryptor(byKey,?IV),?CryptoStreamMode.Write);
????????????????cs.Write(inputByteArray,?
0,?inputByteArray.Length);
????????????????cs.FlushFinalBlock();
????????????????
return?Convert.ToBase64String(ms.ToArray());
????????????}
????????????
catch?(Exception?ex)
????????????{
????????????????
return?ex.Message?+?ex.ToString()?+?ex.Source;
????????????}
????????}

????????
///?<summary>
????????
///?Base64解密函數
????????
///?</summary>
????????
///?<param?name="strText"></param>
????????
///?<param?name="sDecrKey"></param>
????????
///?<returns></returns>
????????private?static?String?Decrypt(String?strText,?String?sDecrKey)
????????{
????????????Byte[]?byKey?
=?{?};
????????????Byte[]?IV?
=?{?0x12,?0x34,?0x56,?0x78,?0x90,?0xAB,?0xCD,?0xEF?};
????????????Byte[]?inputByteArray?
=?new?byte[strText.Length];
????????????
try
????????????{
????????????????byKey?
=?System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0,?8));
????????????????DESCryptoServiceProvider?des?
=?new?DESCryptoServiceProvider();
????????????????inputByteArray?
=?Convert.FromBase64String(strText);
????????????????MemoryStream?ms?
=?new?MemoryStream();
????????????????CryptoStream?cs?
=?new?CryptoStream(ms,?des.CreateDecryptor(byKey,?IV),?CryptoStreamMode.Write);
????????????????cs.Write(inputByteArray,?
0,?inputByteArray.Length);
????????????????cs.FlushFinalBlock();
????????????????System.Text.Encoding?encoding?
=?System.Text.Encoding.UTF8;
????????????????
return?encoding.GetString(ms.ToArray());
????????????}
????????????
catch?(Exception?ex)
????????????{
????????????????
return?ex.Message?+?ex.ToString()?+?ex.Source;
????????????}
????????}
????????
#endregion

????????
#region?SHA1?加密?40位
????????
///?<summary>
????????
///?使用SHA1加密字符串。?40位
????????
///?</summary>
????????
///?<param?name="inputString">輸入字符串。</param>
????????
///?<returns>加密后的字符串。(40個字符)</returns>
????????public?static?string?EncodeBySHA1(string?inputString)
????????{
????????????SHA1CryptoServiceProvider?sha1?
=?new?SHA1CryptoServiceProvider();
????????????
byte[]?encryptedBytes?=?sha1.ComputeHash(Encoding.ASCII.GetBytes(inputString));
????????????StringBuilder?sb?
=?new?StringBuilder();
????????????
for?(int?i?=?0;?i?<?encryptedBytes.Length;?i++)
????????????{
????????????????sb.AppendFormat(
"{0:x2}",?encryptedBytes[i]);
????????????}
????????????
return?sb.ToString();
????????}
????????
#endregion

????????
#region?DES?加密/解密
????????
private?static?byte[]?key?=?ASCIIEncoding.ASCII.GetBytes("caikelun");
????????
private?static?byte[]?iv?=?ASCIIEncoding.ASCII.GetBytes("12345678");

????????
///?<summary>
????????
///?DES加密。
????????
///?</summary>
????????
///?<param?name="inputString">輸入字符串。</param>
????????
///?<returns>加密后的字符串。</returns>
????????public?static?string?EncodeByDES(string?inputString)
????????{
????????????MemoryStream?ms?
=?null;
????????????CryptoStream?cs?
=?null;
????????????StreamWriter?sw?
=?null;

????????????DESCryptoServiceProvider?des?
=?new?DESCryptoServiceProvider();
????????????
try
????????????{
????????????????ms?
=?new?MemoryStream();
????????????????cs?
=?new?CryptoStream(ms,?des.CreateEncryptor(key,?iv),?CryptoStreamMode.Write);
????????????????sw?
=?new?StreamWriter(cs);
????????????????sw.Write(inputString);
????????????????sw.Flush();
????????????????cs.FlushFinalBlock();
????????????????
return?Convert.ToBase64String(ms.GetBuffer(),?0,?(int)ms.Length);
????????????}
????????????
finally
????????????{
????????????????
if?(sw?!=?null)?sw.Close();
????????????????
if?(cs?!=?null)?cs.Close();
????????????????
if?(ms?!=?null)?ms.Close();
????????????}
????????}

????????
///?<summary>
????????
///?DES解密。
????????
///?</summary>
????????
///?<param?name="inputString">輸入字符串。</param>
????????
///?<returns>解密后的字符串。</returns>
????????public?static?string?DecodeByDES(string?inputString)
????????{
????????????MemoryStream?ms?
=?null;
????????????CryptoStream?cs?
=?null;
????????????StreamReader?sr?
=?null;

????????????DESCryptoServiceProvider?des?
=?new?DESCryptoServiceProvider();
????????????
try
????????????{
????????????????ms?
=?new?MemoryStream(Convert.FromBase64String(inputString));
????????????????cs?
=?new?CryptoStream(ms,?des.CreateDecryptor(key,?iv),?CryptoStreamMode.Read);
????????????????sr?
=?new?StreamReader(cs);
????????????????
return?sr.ReadToEnd();
????????????}
????????????
finally
????????????{
????????????????
if?(sr?!=?null)?sr.Close();
????????????????
if?(cs?!=?null)?cs.Close();
????????????????
if?(ms?!=?null)?ms.Close();
????????????}
????????}

????????
#endregion

????????
#region?HTML?&?URL地址加密?-?.NET的方法
????????
///?<summary>
????????
///?URL地址加密?-?.NET的方法
????????
///?</summary>
????????
///?<param?name="strUrl">URL地址</param>
????????
///?<returns></returns>
????????public?static?string?UrlEncode(string?strUrl)
????????{
????????????
if?(string.IsNullOrEmpty(strUrl))
????????????{
????????????????
return?strUrl;
????????????}
????????????
return?System.Web.HttpUtility.UrlEncode(strUrl);
????????}

????????
///?<summary>
????????
///?URL地址解密?-?.NET的方法
????????
///?</summary>
????????
///?<param?name="strURL">加密過的URL地址</param>
????????
///?<returns></returns>
????????public?static?string?UrlDecode(string?strURL)
????????{
????????????
if?(string.IsNullOrEmpty(strURL))
????????????{
????????????????
return?strURL;
????????????}

????????????
return?System.Web.HttpUtility.UrlEncode(strURL);
????????}


????????
///?<summary>
????????
///?返回?HTML?字符串的編碼結果
????????
///?</summary>
????????
///?<param?name="str">字符串</param>
????????
///?<returns>編碼結果</returns>
????????public?static?string?HtmlEncode(string?str)
????????{
????????????
return?HttpUtility.HtmlEncode(str);
????????}

????????
///?<summary>
????????
///?返回?HTML?字符串的解碼結果
????????
///?</summary>
????????
///?<param?name="str">字符串</param>
????????
///?<returns>解碼結果</returns>
????????public?static?string?HtmlDecode(string?str)
????????{
????????????
return?HttpUtility.HtmlDecode(str);
????????}
????????
#endregion

????????
#region?SHA256函數
????????
///?<summary>
????????
///?SHA256函數
????????
///?</summary>
????????
///?<param?name="str">原始字符串</param>
????????
///?<returns>SHA256結果</returns>
????????public?static?string?SHA256(string?str)
????????{
????????????
byte[]?SHA256Data?=?Encoding.UTF8.GetBytes(str);
????????????SHA256Managed?Sha256?
=?new?SHA256Managed();
????????????
byte[]?Result?=?Sha256.ComputeHash(SHA256Data);
????????????
return?Convert.ToBase64String(Result);??//返回長度為44字節的字符串
????????}
????????
#endregion


????}
}

轉載于:https://www.cnblogs.com/netAICode/archive/2009/09/24/1572983.html

總結

以上是生活随笔為你收集整理的加密和解密类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。