C# ,使用“^”运算符对数字加密

原理:“异或”运算符“^”, 用于比较两个二进制数的响应位。计算过程如果两个二进制数的相应位都为1或两个二进制数的相应位都为0,则返回0;如果两个二进制数的相应位其中一个为1另一个为0,则返回0.

            原理公式:依据二进制b 对二进制 a 取异或的一次改变,然后再进行 第二次异或改变,则最后结果仍是原值a

 

举例:数值23   ^   加密数字15     的 二进制异或运算过程为     10111 (23)

                                                                                             ^    01111 (15)   

                                                                                              =  11000  (24)

           数值24  ^   解密数字15     的二进制异或运算过程为      11000 (24)

                                                                                             ^    01111 (15)   

                                                                                              =  10111 (23)


   

 

 代码

 

 

  private void btn_Encrypt_Click(object sender, EventArgs e)
        {
            int P_int_Num, P_int_Key;//定义两个值类型变量
            if (int.TryParse(txt_Num.Text, out P_int_Num)//判断输入是否是数值
                && int.TryParse(txt_Key.Text, out P_int_Key))
            {
                txt_Encrypt.Text = (P_int_Num ^ P_int_Key).ToString();//加密数值
            }
            else
            {
                MessageBox.Show("请输入数值", "出现错误!");//提示输入信息不正确
            }
        }

        private void btn_Revert_Click(object sender, EventArgs e)
        {
            int P_int_Key, P_int_Encrypt;//定义两个值类型变量
            if (int.TryParse(txt_Encrypt.Text, out P_int_Key)//判断输入是否是数值
                && int.TryParse(txt_Key.Text, out P_int_Encrypt))
            {
                txt_Revert.Text = (P_int_Encrypt ^ P_int_Key).ToString();//解密数值
            }
            else
            {
                MessageBox.Show("请输入数值", "出现错误!");//提示输入信息不正确
            }
        }

如图,23经加密后是 24,经解密后是23

 

posted @ 2022-07-09 22:30  明志德道  阅读(673)  评论(0编辑  收藏  举报