国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

base64編碼類------源代碼(C#)

2024-07-21 02:18:26
字體:
來源:轉載
供稿:網友


using system;

namespace shapbse64
{

/// <summary>
/// 有關base64編碼算法的相關操作
///by 自由奔騰(wgscd)
/// </summary>
public class sbase64
{
public sbase64()
{
//
// todo: 在此處添加構造函數邏輯
//
}
//--------------------------------------------------------------------------------
/// <summary>
/// 將字符串使用base64算法加密
/// </summary>
/// <param name="sourcestring">待加密的字符串</param>
/// <param name="ens">system.text.encoding 對象,如創建中文編碼集對象:system.text.encoding.getencoding(54936)</param>
/// <returns>加碼后的文本字符串</returns>
public static string encodingforstring(string sourcestring,system.text.encoding ens)
{
return convert.tobase64string(ens.getbytes(sourcestring));
}


/// <summary>
/// 將字符串使用base64算法加密
/// </summary>
/// <param name="sourcestring">待加密的字符串</param>
/// <returns>加碼后的文本字符串</returns>
public static string encodingforstring(string sourcestring)
{
return encodingforstring(sourcestring,system.text.encoding.getencoding(54936));
}


/// <summary>
/// 從base64編碼的字符串中還原字符串,支持中文
/// </summary>
/// <param name="base64string">base64加密后的字符串</param>
/// <param name="ens">system.text.encoding 對象,如創建中文編碼集對象:system.text.encoding.getencoding(54936)</param>
/// <returns>還原后的文本字符串</returns>
public static string decodingforstring(string base64string,system.text.encoding ens)
{
/**
* ***********************************************************
*
* 從base64string中取得的字節值為字符的機內碼(ansi字符編碼)
* 一般的,用機內碼轉換為漢字是公式:
* (char)(第一字節的二進制值*256+第二字節值)
* 而在c#中的char或string由于采用了unicode編碼,就不能按照上面的公式計算了
* ansi的字節編和unicode編碼不兼容
* 故利用.net類庫提供的編碼類實現從ansi編碼到unicode代碼的轉換
*
* getencoding 方法依賴于基礎平臺支持大部分代碼頁。但是,對于下列情況提供系統支持:默認編碼,即在執行此方法的計算機的區域設置中指定的編碼;little-endian unicode (utf-16le);big-endian unicode (utf-16be);windows 操作系統 (windows-1252);utf-7;utf-8;ascii 以及 gb18030(簡體中文)。
*
*指定下表中列出的其中一個名稱以獲取具有對應代碼頁的系統支持的編碼。
*
* 代碼頁 名稱
* 1200 “utf-16le”、“utf-16”、“ucs-2”、“unicode”或“iso-10646-ucs-2”
* 1201 “utf-16be”或“unicodefffe”
* 1252 “windows-1252”
* 65000 “utf-7”、“csunicode11utf7”、“unicode-1-1-utf-7”、“unicode-2-0-utf-7”、“x-unicode-1-1-utf-7”或“x-unicode-2-0-utf-7”
* 65001 “utf-8”、“unicode-1-1-utf-8”、“unicode-2-0-utf-8”、“x-unicode-1-1-utf-8”或“x-unicode-2-0-utf-8”
* 20127 “us-ascii”、“us”、“ascii”、“ansi_x3.4-1968”、“ansi_x3.4-1986”、“cp367”、“csascii”、“ibm367”、“iso-ir-6”、“iso646-us”或“iso_646.irv:1991”
* 54936 “gb18030”
*
* 某些平臺可能不支持特定的代碼頁。例如,windows 98 的美國版本可能不支持日語 shift-jis 代碼頁(代碼頁 932)。這種情況下,getencoding 方法將在執行下面的 c# 代碼時引發 notsupportedexception:
*
* encoding enc = encoding.getencoding("shift-jis");
*
* **************************************************************/
//從base64string中得到原始字符
return ens.getstring(convert.frombase64string(base64string));
}


/// <summary>
/// 從base64編碼的字符串中還原字符串,支持中文
/// </summary>
/// <param name="base64string">base64加密后的字符串</param>
/// <returns>還原后的文本字符串</returns>
public static string decodingforstring(string base64string)
{
return decodingforstring(base64string,system.text.encoding.getencoding(54936));
}


//--------------------------------------------------------------------------------------

/// <summary>
/// 對任意類型的文件進行base64加碼
/// </summary>
/// <param name="filename">文件的路徑和文件名</param>
/// <returns>對文件進行base64編碼后的字符串</returns>
public static string encodingforfile(string filename)
{
system.io.filestream fs=system.io.file.openread(filename);
system.io.binaryreader br= new system.io.binaryreader(fs);

/*system.byte[] b=new system.byte[fs.length];
fs.read(b,0,convert.toint32(fs.length));*/


string base64string=convert.tobase64string(br.readbytes((int)fs.length));


br.close();
fs.close();
return base64string;
}

/// <summary>
/// 把經過base64編碼的字符串保存為文件
/// </summary>
/// <param name="base64string">經base64加碼后的字符串</param>
/// <param name="filename">保存文件的路徑和文件名</param>
/// <returns>保存文件是否成功</returns>
public static bool savedecodingtofile(string base64string,string filename)
{
system.io.filestream fs=new system.io.filestream(filename, system.io.filemode.create);
system.io.binarywriter bw = new system.io.binarywriter(fs);
bw.write(convert.frombase64string(base64string));
bw.close();
fs.close();
return true;
}


//-------------------------------------------------------------------------------

/// <summary>
/// 從網絡地址一取得文件并轉化為base64編碼
/// </summary>
/// <param name="url">文件的url地址,一個絕對的url地址</param>
/// <param name="objwebclient">system.net.webclient 對象</param>
/// <returns></returns>
public static string encodingfilefromurl(string url,system.net.webclient objwebclient)
{
return convert.tobase64string(objwebclient.downloaddata(url));
}


/// <summary>
/// 從網絡地址一取得文件并轉化為base64編碼
/// </summary>
/// <param name="url">文件的url地址,一個絕對的url地址</param>
/// <returns>將文件轉化后的base64字符串</returns>
public static string encodingfilefromurl(string url)
{
//system.net.webclient mywebclient = new system.net.webclient();
return encodingfilefromurl(url,new system.net.webclient());
}
}
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文化| 文成县| 扎囊县| 新乐市| 普定县| 寻乌县| 原阳县| 虞城县| 富民县| 山阳县| 张家界市| 溧阳市| 康保县| 安平县| 满洲里市| 北京市| 蒲城县| 邯郸市| 盐池县| 黎平县| 缙云县| 井陉县| 稷山县| 通城县| 墨玉县| 青冈县| 武城县| 堆龙德庆县| 札达县| 永胜县| 綦江县| 阿坝县| 广宁县| 淮滨县| 马边| 揭西县| 呼伦贝尔市| 津市市| 陇川县| 新昌县| 巴东县|