259 lines
8.3 KiB
C#
259 lines
8.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Windows.Forms;
|
|
using WeifenLuo.WinFormsUI.Docking;
|
|
|
|
namespace 开发辅助工具.Tools
|
|
{
|
|
public partial class FrmEncode : DockContent
|
|
{
|
|
public FrmEncode()
|
|
{
|
|
InitializeComponent();
|
|
CbbEncodingCode.SelectedIndex = 0;
|
|
}
|
|
RyWeb.QuickWeb web = new RyWeb.QuickWeb();
|
|
private void AutoCode()
|
|
{
|
|
string from_text = TxtFromCode.Text;
|
|
if (from_text == "") { TxtResultCode.Text = ""; return; }
|
|
#region 获取编码
|
|
Encoding encoding = Encoding.UTF8;
|
|
switch (CbbEncodingCode.SelectedIndex)
|
|
{
|
|
case 0: encoding = Encoding.UTF8; break;
|
|
case 1: encoding = Encoding.GetEncoding("GBK"); break;
|
|
case 2: encoding = Encoding.GetEncoding("GB2312"); break;
|
|
case 3: encoding = Encoding.ASCII; break;
|
|
case 4: encoding = Encoding.Unicode; break;
|
|
case 5: encoding = Encoding.BigEndianUnicode; break;
|
|
case 6: encoding = Encoding.UTF7; break;
|
|
case 7: encoding = Encoding.UTF32; break;
|
|
}
|
|
#endregion
|
|
if (RbBase64Encode.Checked)
|
|
{
|
|
#region Base64加密
|
|
try
|
|
{
|
|
byte[] bytedata = encoding.GetBytes(from_text);
|
|
TxtResultCode.Text = Convert.ToBase64String(bytedata, 0, bytedata.Length);
|
|
}
|
|
catch
|
|
{
|
|
TxtResultCode.Text = "";
|
|
}
|
|
#endregion
|
|
}
|
|
else if (RbBase64Decode.Checked)
|
|
{
|
|
#region Base64解密
|
|
try
|
|
{
|
|
byte[] bytes = Convert.FromBase64String(from_text);
|
|
TxtResultCode.Text = encoding.GetString(bytes);
|
|
}
|
|
catch
|
|
{
|
|
TxtResultCode.Text = "";
|
|
}
|
|
#endregion
|
|
}
|
|
else if (RbURLEncode.Checked)
|
|
{
|
|
TxtResultCode.Text = web.UrlEncode(from_text, encoding);
|
|
}
|
|
else if (RbURLDecode.Checked)
|
|
{
|
|
TxtResultCode.Text = RyWeb.WebDecode.UrlDecode(from_text, encoding);
|
|
}
|
|
else if (RbUnicodeToChs.Checked)
|
|
{
|
|
#region Unicode转字符串
|
|
try
|
|
{
|
|
TxtResultCode.Text = Regex.Unescape(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbChsToUnicode.Checked)
|
|
{
|
|
#region 字符串转Unicode码
|
|
try
|
|
{
|
|
TxtResultCode.Text = GetUnicode(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
string GetUnicode(string text)
|
|
{
|
|
string result = "";
|
|
for (int i = 0; i < text.Length; i++)
|
|
{
|
|
//if ((int)text[i] > 32 && (int)text[i] < 127)
|
|
//{
|
|
// result += text[i].ToString();
|
|
//}
|
|
//else
|
|
result += string.Format("\\u{0:x4}", (int)text[i]);
|
|
}
|
|
return result;
|
|
}
|
|
#endregion
|
|
}
|
|
else if (RbUTF8ToChs.Checked)
|
|
{
|
|
#region UTF8转字符串
|
|
try
|
|
{
|
|
TxtResultCode.Text = RyWeb.WebDecode.Unescape(from_text.Replace("&#x","%u").Replace(";", ""));
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbChsToUTF8.Checked)
|
|
{
|
|
#region 字符串转UTF8
|
|
try
|
|
{
|
|
TxtResultCode.Text = RyWeb.WebDecode.Escape(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbMD5.Checked)
|
|
{
|
|
#region 获取MD5
|
|
try
|
|
{
|
|
TxtResultCode.Text = rySafe.MD5Sha1.GetMD5(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbSHA1.Checked)
|
|
{
|
|
#region 获取SHA1
|
|
try
|
|
{
|
|
TxtResultCode.Text = rySafe.MD5Sha1.GetSHA1(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbSHA224.Checked)
|
|
{
|
|
#region 获取SHA224
|
|
try
|
|
{
|
|
//TxtResultCode.Text = rySafe.MD5Sha1.GetSHA224(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbSHA256.Checked)
|
|
{
|
|
#region 获取SHA256
|
|
try
|
|
{
|
|
TxtResultCode.Text = rySafe.MD5Sha1.GetSHA256(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
else if (RbSHA512.Checked)
|
|
{
|
|
#region 获取SHA256
|
|
try
|
|
{
|
|
TxtResultCode.Text = rySafe.MD5Sha1.GetSHA512(from_text);
|
|
}
|
|
catch { TxtResultCode.Text = ""; }
|
|
#endregion
|
|
}
|
|
}
|
|
public string get_uft8(string unicodeString)
|
|
{
|
|
UTF8Encoding utf8 = new UTF8Encoding();
|
|
Byte[] encodedBytes = utf8.GetBytes(unicodeString);
|
|
String decodedString = utf8.GetString(encodedBytes);
|
|
return decodedString;
|
|
}
|
|
public static string gb2312_utf8(string text)
|
|
{
|
|
//声明字符集
|
|
System.Text.Encoding utf8, gb2312;
|
|
//gb2312
|
|
gb2312 = System.Text.Encoding.GetEncoding("gb2312");
|
|
//utf8
|
|
utf8 = System.Text.Encoding.GetEncoding("utf-8");
|
|
byte[] gb;
|
|
gb = gb2312.GetBytes(text);
|
|
gb = System.Text.Encoding.Convert(gb2312, utf8, gb);
|
|
//返回转换后的字符
|
|
return utf8.GetString(gb);
|
|
}
|
|
|
|
private void CbbEncodingCode_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
AutoCode();
|
|
}
|
|
|
|
private void RbBase64Encode_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton chk = (RadioButton)sender;
|
|
if (chk.Checked)
|
|
{
|
|
CbbEncodingCode.Enabled = true;
|
|
}
|
|
AutoCode();
|
|
}
|
|
|
|
private void RbUnicodeToChs_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton chk = (RadioButton)sender;
|
|
if (chk.Checked)
|
|
{
|
|
CbbEncodingCode.Enabled = false;
|
|
}
|
|
AutoCode();
|
|
}
|
|
|
|
private void RbNoEncoding_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
RadioButton chk = (RadioButton)sender;
|
|
if (chk.Checked)
|
|
{
|
|
CbbEncodingCode.Enabled = false;
|
|
}
|
|
AutoCode();
|
|
}
|
|
|
|
private void TxtFromCode_TextChanged(object sender, EventArgs e)
|
|
{
|
|
AutoCode();
|
|
}
|
|
|
|
private void TxtFromCode_DoubleClick_1(object sender, EventArgs e)
|
|
{
|
|
ryControls.Controls.RichTextBox2 txt = (ryControls.Controls.RichTextBox2)sender;
|
|
开发辅助工具.Controls.FrmText frm = new Controls.FrmText
|
|
{
|
|
Icon = Icon
|
|
};
|
|
frm.richTextBox1.Text = txt.Text;
|
|
if (frm.ShowDialog() == DialogResult.OK)
|
|
{
|
|
txt.Text = frm.richTextBox1.Text;
|
|
}
|
|
}
|
|
}
|
|
}
|