zoukankan
html css js c++ java
ASP.NETbase64加密方法
/**/
///
<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(
65001
));
}
/**/
///
<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(
65001
));
}
//
--------------------------------------------------------------------------------------
/**/
///
<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
;
}
,
这个送给你!
查看全文
相关阅读:
移动端开发必须知道的小技巧
前端程序员被聘用的13个开发技能
AIOps产品与架构浅析【华为云技术分享】
su和sudo的区别与使用【华为云技术分享】
为什么我不喜欢数据库三范式【华为云技术分享】
python推导式pythonic必备【华为云技术分享】
理解递归与动态规划【华为云技术分享】
Spring Boot 最流行的 16 条实践解读!【华为云技术分享】
机器学习笔记(六) ---- 支持向量机(SVM)【华为云技术分享】
独立物理机和虚拟机比较有什么优势?【华为云技术分享】
原文地址:https://www.cnblogs.com/di305449473/p/1210724.html
最新文章
ip addr 相关操作
ovs 下流表port 1进入,port 1出去
神经网络 感知机 Perceptron python实现
Python Numpy matplotlib Histograms 直方图
Python matplotlib numpy 曼德尔布罗特集合 曼德尔布罗特 B.Madelbrot
顺时针打印矩阵 牛客网 剑指Offer
链表中环的入口结点 牛客网 剑指Offer
链表中倒数第K个结点 牛客网 剑指Offer
重建二叉树 牛客网 剑指Offer
连续子序列的最大和 牛客网 剑指Offer
热门文章
跳台阶 牛客网 剑指Offer
调整数组顺序使奇数位于偶数前面 牛客网 剑指Offer
javascript 代码是如何被压缩的
底部粘连(stiky footer)布局
图片预览以及上传显示进度
DOM元素节点js常用操作
.htaccess文件RewriteRule语法规则
运用meta标签进行网站优化
CSS3动画:animation
CSS3中box-shadow属性
Copyright © 2011-2022 走看看