c# 加密和解密相关代码


-
数据的加密与解密 文件的加密与解密 第 章 加密与解密技术 第19章 加密与解密技术 829 19.1 数据的加密与解密 实例571 异或算法对数字进行加密与解密 光盘位置:光盘\MR\19\571 中级 趣味指数: 实 例说明 在实现本实例之前先来简要了解一下加密的概念,加密是指通过 某种特殊的方法,更改已有信息的内容,使得未授权的用户即使得到 了加密信息,如果没有正确解密的方法,也无法得到信息的内容。谈 到加密的话题,一些读者一定非常感兴趣,而且会联想到复杂的加密 算法,本实例主要使用异或“^”运算符简单地实现了对数字加密的 功能。实例运行效果如图19.1 所示。 关 键技术 本实例实现时主要使用了“异或”运算符对数字进行“异或”运 算,以达到简单加密数字的目的,下面对其进行详细讲解。 “异或”运算符“^”用于比较两个二进制数的相应位。在执行按位“异或”运算时,如果两个二进制数的 相应位都为1 或两个二进制数的相应位都为0,则返回0;如果两个二进制数的相应位其中一个为1 一个为0, 则返回1。 现在来了解一下使用“异或”加密或解密的执行过程,数值23 转换为二进制为10111,加密数字的数值15 转换为二进制为1111。对比两个二进制的值,从右向左按位对比,如果两个二进制数的相应位都为1 或两个二 进制数的相应位都为0,则返回0;如果两个二进制数的相应位中一个为1 一个为0,则返回1,最后得到的结 果为二进制值11000,该值转换为十进制为24,所以得到的加密结果为24。而解密过程也很简单,只是将加密 结果24与加密数字15 进行“异或”运算,将24 转换为二进制值11000,将15 转换为二进制值1111,进行“异 或”运算后,得到结果为23,这样又还原了加密的数据。 说明:本实例只是简单地使用了“异或”运算符计算两个整型数值以达到加密的目的,所以本实例只可以 对整型数值进行加密运算,并不适合其他数据的加密。 设 计过程 (1)打开Visual Studio 2008 开发环境,新建一个Windows窗体应用程序,并将其命名为Encrypt。 (2)更改默认窗体Form1 的Name 属性为Frm_Main,在该窗体中添加两个GroupBox 容器控件,其中, 在第一个GroupBox 中放入3 个TextBox 控件和一个Button 按钮,分别用于输入数字、输入加密数字、显示加 密后的数字和计算加密信息;在第二个GroupBox 中放入一个TextBox 控件和一个Button 按钮,分别用于显示 解密后的信息和计算解密信息。 (3)程序主要代码如下: 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 图19.1 异或算法对数字进行加密与解密 C#开发实战1200 例(第II卷) 830 { 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("请输入数值", "出现错误!"); //提示输入信息不正确 } } 秘 笈心法 心法领悟571:简述“异或”运算符。 本实例使用了“异或”运算符,但是在使用“异或”运算符之前,有必要了解“异或”运算符所做的“异 或”运算的机制,“异或”运算符“^”用于比较两个二进制数的相应位。在执行按位“异或”运算时,如果两 个二进制数的相应位都为1 或两个二进制数的相应位都为0,则返回0;如果两个二进制数的相应位中一个为1 一个为0,则返回
-
2015-08-15
-
2015-06-05
-
2014-10-23
-
2014-03-05
-
2013-10-10
-
2013-01-11
-
2012-10-25
-
2012-08-18
-
2012-05-06
-
giszhilin: 真是很晕,这个下载文件里面根本就没什么东西,就一个项目。而且这个程序还不能运行(至少我这里不可以),里面只有十几句代码。 窗体标题是异或算法,我在网上搜了根本不是。 资源内容和实际不符,绝对绝对绝对值不了10分。。。亏了。 麻烦上传者厚道一点。 各位也别上当了。
2012-03-07
-
学院
MySQL 高可用(DRBD + heartbeat)
MySQL 高可用(DRBD + heartbeat)
-
下载
2014年重庆理工大学《面向对象程序设计》期末考试试卷 .pdf
2014年重庆理工大学《面向对象程序设计》期末考试试卷 .pdf
-
学院
云开发后台+微信扫码点餐小程序+cms网页管理后台 含后厨端和用户端
云开发后台+微信扫码点餐小程序+cms网页管理后台 含后厨端和用户端
-
学院
朱老师鸿蒙系列课程第1期-3.鸿蒙系统Harmonyos源码配置和管理
朱老师鸿蒙系列课程第1期-3.鸿蒙系统Harmonyos源码配置和管理
-
下载
[内部保密,禁止传播]天融信数据安全解决方案.pptx
[内部保密,禁止传播]天融信数据安全解决方案.pptx
-
学院
app软件测试全栈系列精品课程
app软件测试全栈系列精品课程
-
博客
maven更新慢等问题换镜像
maven更新慢等问题换镜像
-
下载
2014年重庆理工大学《计算机网络安全》期末考试试卷.pdf
2014年重庆理工大学《计算机网络安全》期末考试试卷.pdf
-
下载
项目1.exe。。。。。
项目1.exe。。。。。
-
博客
树莓派使用pwm控制风扇
树莓派使用pwm控制风扇
-
学院
MySQL 高可用工具 heartbeat 实战部署详解
MySQL 高可用工具 heartbeat 实战部署详解
-
博客
积攒了不少学习渠道和方法,分享给大家
积攒了不少学习渠道和方法,分享给大家
-
下载
《A Survey of the Recent Architectures of Deep Convolutional Neural Networks》
《A Survey of the Recent Architectures of Deep Convolutional Neural Networks》
-
下载
基于java实现的c++动态链接库调用案例
基于java实现的c++动态链接库调用案例
-
学院
2021年 系统分析师 系列课
2021年 系统分析师 系列课
-
学院
C语言零基础入门(详细讲解)
C语言零基础入门(详细讲解)
-
下载
呆逼萌新的小程序。。。。。
呆逼萌新的小程序。。。。。
-
博客
SpringBoot 2.3.x整合Swagger3.x接口文档+Knife4jUI
SpringBoot 2.3.x整合Swagger3.x接口文档+Knife4jUI
-
下载
网络安全等级保护等级测评实施培训-公安部.pdf
网络安全等级保护等级测评实施培训-公安部.pdf
-
博客
linux连接wifi
linux连接wifi
-
学院
VMware vSphere ESXi 7 精讲/VCSA/VSAN
VMware vSphere ESXi 7 精讲/VCSA/VSAN
-
学院
MySQL 数据库的基本操作(数据完整性约束)
MySQL 数据库的基本操作(数据完整性约束)
-
博客
股票数据网站
股票数据网站
-
学院
MySQL 数据类型和运算符
MySQL 数据类型和运算符
-
下载
前后端socket通信.zip
前后端socket通信.zip
-
下载
chromedriver2019.rar
chromedriver2019.rar
-
下载
IFIX简单历史报警显示功能.docx
IFIX简单历史报警显示功能.docx
-
博客
【毕业答辩】学位论文答辩ppt指南!
【毕业答辩】学位论文答辩ppt指南!
-
学院
MySQL 高可用工具 DRBD 实战部署详解
MySQL 高可用工具 DRBD 实战部署详解
-
博客
2021-03-03
2021-03-03