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

2023-10-21 18:44:33 浏览数 (1)

原理:“异或”运算符“^”, 用于比较两个二进制数的响应位。计算过程如果两个二进制数的相应位都为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)

 代码

代码语言:javascript复制
  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

0 人点赞