程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 使用異或運算符對整數進行加密,運算符整數加密

使用異或運算符對整數進行加密,運算符整數加密

編輯:C#入門知識

使用異或運算符對整數進行加密,運算符整數加密


一:什麼是∧運算符:

二元 ^ 運算符是為整型和 bool 類型預定義的。對於整型,^ 將計算操作數的按位“異或”。對於 bool 操作數,^ 將計算操作數的邏輯“異或”;也就是說,當且僅當只有一個操作數為 true 時,結果才為 true。

二:在進行異或運算規則:

如兩個二進制數的相應位都為1 或者二進制數的相應位都為0,則返回0;如果兩個二進制數相應位一個為0,另一個為1則返回1;

三:異或運算的執行過程:

加密:將23進行異或運算加密,key為15

解密:將加密結果:24進行異或運算解密,key=15

注釋1:23轉2進制算法流程

注釋2:將10111和1111進行異或運算規則比較:

注釋3:11000轉為10進制數:1*2^4+1*2^3+0*2^2+0*2^1+0*2^0=16+8+0+0+0=24

四:編寫加密小工具:

程序的主要代碼如下:

        /// <summary>
        ///加密
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            int num, key;
            if (int.TryParse(this.textBox1.Text, out key) && int.TryParse(this.textBox2.Text, out num))
            {
                this.label4.Text = (num ^ key).ToString();
            }
            else
            {
                MessageBox.Show("請輸入數值","出現錯誤");
            }
        }
        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            int key, encrypt;
            if (int.TryParse(this.textBox1.Text, out key) && int.TryParse(this.label4.Text,out  encrypt))
            {
                this.label5.Text = (key ^ encrypt).ToString();
            }
            else
            {
                MessageBox.Show("請輸入數值", "出現錯誤");
            }
        }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved