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 @   明志德道  阅读(675)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示