private void button1_Click(object sender, EventArgs e)
{
int key = Convert.ToByte(textBox1.Text,16);
String plain = textBox2.Text.Trim();
String ans = getck(key, plain);
String p2 = getck2(key, ans);
textBox3.Text = "key:" + key + "\r" + "輸入明文:" + plain + "\r" + "加密後:" + ans + "\r" + "解密後:" + p2;
}
//加密
private string getck(int key, String plain)
{
string ans = "";
for (int k = 0; k < plain.Length; k++)
{
char c = Convert.ToChar(plain.Substring(k, 1));
byte temp = (byte)c;
byte result = (byte)(temp ^ key);
if (result.ToString().Length < 4)
{
ans += String.Format("{0:D4}", result);
}
else
{
ans += result.ToString();
}
}
return ans;
}
//解密
private String getck2(int key, String plain)
{
String ans = "";
int getInexleng = 0;
for (int k = 0; k < plain.Length / 4; k++)
{
byte temp = Convert.ToByte(plain.Substring(getInexleng, 4));
byte result = (byte)(temp ^ key);
ans += Convert.ToChar(result).ToString();
getInexleng += 4;
}
return ans;
}
2010年8月24日 星期二
簡易的XOR加解密程式!
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言