C#通过异或(^)运算符制作二进制加密(C#实现加密)

快速了解异或运算符:

异或运算符在C#中用 "^ " 来表示

口诀:相同取0,相异取1

简单加密解密winform示例:

cs 复制代码
 /// <summary>
 /// 异或运算符加密实现
 /// </summary>
 /// <param name="p_int_Num">初始值</param>
 /// <param name="p_int_Key">加密Key</param>
 private void button1_Click(object sender, EventArgs e)
 {
     int p_int_Num, p_int_Key;
     if(int.TryParse(textBox1.Text, out p_int_Num)&&int.TryParse(textBox2.Text,out p_int_Key )){
         textBox3.Text=(p_int_Num^p_int_Key).ToString();
     }
     else
     {
         MessageBox.Show("请输入数值", "出现错误");
     }
     /*
      int a = 5;
      int b = 30;
      a^b = 27
      5的二进制:0000 0101
      30的二进制:0001 1110
      而异或的算法就是,两个二进制数的每一位进行比较,如果相同则为0,不同则为1
      0000 0101
      0001 1110
      ----------
      0001 1011 = 1+2+8+16 = 27
      */
 }
 /// <summary>
 /// 异或运算符解密实现
 /// </summary>
 /// <param name="P_int_Key">加密Key</param>
 /// <param name=" P_int_Encrypt">加密后的值</param>
 private void button2_Click(object sender, EventArgs e)
 {
     int P_int_Key, P_int_Encrypt;
     if(int.TryParse(textBox2.Text,out P_int_Key)&& int.TryParse(textBox3.Text,out P_int_Encrypt))
     {
         textBox4.Text = (P_int_Key^P_int_Encrypt).ToString();
     }
     else
     {
         MessageBox.Show("请输入数值", "出现错误");
     }
 }
 /*
      128 64 32 16 8 4 2 1
  27: 0   0  0  1 1 0 1 1
  30: 0   0  0  1 1 1 1 0
                 0 0 1 0 1 = 5
  */
相关推荐
H.莓飛2 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1143 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
爱喝水的鱼丶4 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
小灰灰搞电子4 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放4 小时前
面向对象高级(实战案例)
开发语言·python·学习
zimoyin5 小时前
在 C# 里嵌入 JavaScript:用 Jint 做可热更新的自动化脚本(从入门到踩坑)
javascript·c#·自动化
fanruitian5 小时前
python else用法
开发语言·python
FRing035 小时前
JavaScript入门到精通二十六(变量提升、函数剩余参数、展开运算符、ES6箭头函数)
开发语言·前端·javascript·es6·箭头函数
云深麋鹿5 小时前
C++ | 基于红黑树实现mymap与myset
开发语言·c++
weixin_417396836 小时前
桌面云终端PXE启动失败怎么排查?从DHCP Option到镜像下发
开发语言·前端·php·技术·酒店·综合布线·弱电