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)
沒有留言:
張貼留言