C# 字符串转ASCII码的问题,以及一些扩展(加密字符串、解密字符串)
1、不多说,直接上代码,下面是string单字符转ASCII码
public int Asc(string character)
{
if (character.Length == 1)
{
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
int intAsciiCode = (int)asciiEncoding.GetBytes(character)[0];
return (intAsciiCode);
}
else
{
throw new Exception("Character is not valid.");
}
}2、ASCII码转string
public string Chr(int asciiCode)
{
if (asciiCode >= 0 && asciiCode <= 255)
{
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
byte[] byteArray = new byte[] { (byte)asciiCode };
string strCharacter = asciiEncoding.GetString(byteArray);
return (strCharacter);
}
else
{
throw new Exception("ASCII Code is not valid.");
}
}3、加密方法
/// <summary>
/// 字符串加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string passscript(string str)
{
string lsstr1 = "";
string lsstr;
int k;
if (str == "")
{
return str;
}
for (int i = 1; i < str.Length+1; i++)
{
lsstr = str.Substring(i - 1, 1);
k = asi.Asc(lsstr);
if (i % 2 == 0)
{
k = k + i - 32;
}
else
{
k = k - i + 8;
}
lsstr1 = lsstr1 + asi.Chr(k);
}
return lsstr1;
}4、解密方法
/// <summary>
/// 字符串解密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string descript(string str)
{
string lsstr1 = "";
string lsstr;
int k;
if (str == "")
{
return str;
}
for (int i = 1; i < str.Length+1; i++)
{
lsstr = str.Substring(i - 1, 1);
k = asi.Asc(lsstr);
if (i % 2 == 0)
{
k = k - i + 32;
}
else
{
k = k + i - 8;
}
lsstr1 = lsstr1 + asi.Chr(k);
}
return lsstr1;
}5、上述3、4 中使用到的相关内容
需要先实例化对象,类文件:
Ascii.zip
//ASCII转string,与string转ASCII对象,实例化 Ascii asi = new Ascii();
因循环参数i必须从1开始,故单字符取得方法
str.Substring(i - 1, 1)
循环总数因如上原因也需这样
str.Length+1
以上加密与解密适合TJ系列HIS系统的加密与解密。
相关程序代码:

