Files
2025-08-26 08:37:44 +08:00

138 lines
4.8 KiB
C#
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
namespace CCS.Utility.Security
{
public static class Base64Helper
{
#region Base64加密解密
/// <summary>
/// Base64加密采用指定字符编码方式加密。
/// </summary>
/// <param name="input">待加密的明文</param>
/// <param name="encode">字符编码</param>
/// <returns></returns>
public static string Base64Encrypt(this string input, Encoding encode)
{
return Convert.ToBase64String(encode.GetBytes(input));
}
/// <summary>
/// Base64加密采用UTF8编码方式加密。
/// </summary>
/// <param name="input">待加密的明文</param>
/// <returns></returns>
public static string Base64Encrypt(this string input)
{
return Base64Encrypt(input, new UTF8Encoding());
}
/// <summary>
/// Base64解密采用UTF8编码方式解密。
/// </summary>
/// <param name="input">待解密的秘文</param>
/// <returns></returns>
public static string Base64Decrypt(this string input)
{
return Base64Decrypt(input, new UTF8Encoding());
}
/// <summary>
/// Base64解密采用指定字符编码方式解密。
/// </summary>
/// <param name="input">待解密的秘文</param>
/// <param name="encode">字符的编码</param>
/// <returns></returns>
public static string Base64Decrypt(this string input, Encoding encode)
{
return encode.GetString(Convert.FromBase64String(input));
}
#endregion
/// <summary>
/// 文件转base64字符串
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static string FileToBase64(string filePath)
{
try
{
string base64Str;
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
byte[] bt = new byte[fileStream.Length];
// 调用read读取方法 
fileStream.Read(bt, 0, bt.Length);
base64Str = Convert.ToBase64String(bt);
}
return base64Str;
}
catch
{
return "";
}
}
/// <summary>
/// base64字符串转文件字节数组
/// </summary>
/// <param name="base64"></param>
/// <returns></returns>
public static byte[] FileFromBase64(string base64)
{
return Convert.FromBase64String(base64);
}
/// <summary>
/// 将传进来的文件转换成字符串
/// </summary>
/// <param name="FilePath">待处理的文件路径(本地或服务器)</param>
/// <returns></returns>
public static string FileToBinary(string filePath)
{
//利用新传来的路径实例化一个FileStream对像
System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
//得到对象的大小
int fileLength = Convert.ToInt32(fs.Length);
//声明一个byte数组
byte[] fileByteArray = new byte[fileLength];
//声明一个读取二进流的BinaryReader对像
System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
for (int i = 0; i < fileLength; i++)
{
//将数据读取出来放在数组中
br.Read(fileByteArray, 0, fileLength);
}
//装数组转换为String字符串
string strData = Convert.ToBase64String(fileByteArray);
br.Close();
fs.Close();
return strData;
}
/// <summary>
/// 将传进来的字符串保存为文件
/// </summary>
/// <param name="path">需要保存的位置路径</param>
/// <param name="binary">需要转换的字符串</param>
public static void BinaryToFile(string path, string binary)
{
System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Create, System.IO.FileAccess.Write);
//利用新传来的路径实例化一个FileStream对像
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
//实例化一个用于写的BinaryWriter
byte[] buffer = Convert.FromBase64String(binary);
bw.Write(buffer);
bw.Close();
fs.Close();
}
}
}