日期:2014-05-18  浏览次数:20761 次

对字符串加密,解密
字符串中含有中文,日文,英文字符等

谢谢!!

------解决方案--------------------
可以用DSA和RSA,如:

using System;

using System.Text;

using System.Security.Cryptography;

class dsacrypto_SignData {

public static void Main(String[] args){

//先要将字符串转换为字节数组,这与编码有关。

String str = "this is a test. ";

byte[] bytes = Encoding.ASCII.GetBytes(str);

//选择签名方式,有RSA和DSA

DSACryptoServiceProvider dsac = new DSACryptoServiceProvider();

byte[] sign = dsac.SignData(bytes);

//sign便是出来的签名结果。

//下面是认证了

DSACryptoServiceProvider dsac2 = new DSACryptoServiceProvider();

dsac2.FromXmlString(dsac.ToXmlString(false));

bool ver = dsac2.VerifyData(bytes, sign);

if (ver) {

Console.WriteLine( "通过 ");

} else {

Console.WriteLine( "不能通过 ");

}

}

}

------解决方案--------------------
/*
Filename: encrypt_string.cs
Fuction : input a strig and encrypt a string
加密后的字符串的第一个字符是原先字符串的最后一个字符,
其余的每一个字符是对应的原字符串中的前一个字符的值加
上3。
example: welcome -> ezhofrp

*/
using System;

class Test
{
public static void Main()
{
string strInput, strOutput;

Console.WriteLine( "please input a string to encrypt: \n ");
strInput=Console.ReadLine();


Console.WriteLine( " your input string is : {0}\n ", strInput);
//Encrypt(strInput);

strOutput = Encrypt(strInput);

Console.WriteLine( "strOutput is :{0}\n ", strOutput);
}

private static string Encrypt(string strInput)
{
string strFont, strEnd;
string strOutput;
char[] charFont;
int i,len, intFont;

len = strInput.Length;
//Console.WriteLine( " strInput 's length is :{0} \n ", len);
strFont = strInput.Remove(len-1,1);
strEnd= strInput.Remove(0, len-1);

//Console.WriteLine( " strFont is : {0} \n " , strFont);
//Console.WriteLine( " strEnd is : {0} \n " , strEnd);

charFont = strFont.ToCharArray();
for(i=0; i <strFont.Length; i++)
{
intFont = (int)charFont[i] + 3;
//Console.WriteLine( " intFont is : {0} \n ", intFont);

charFont[i]= Convert.ToChar(intFont);
//Console.WriteLine( "charFont[{0}] is : {1}\n ", i, charFont[i]);
}
strFont = " "; //let strFont null
for (i=0; i <charFont.Length; i++)
{
strFont += charFont[i];
}
strOutput=strEnd + strFont;
return strOutput;

}
}