国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

實(shí)踐練習(xí)^運(yùn)算符-使用^運(yùn)算符對(duì)內(nèi)容進(jìn)行加密

2019-11-14 13:34:42
字體:
供稿:網(wǎng)友

【實(shí)例說明】

 本例關(guān)鍵點(diǎn)是練習(xí)使用^的使用,沒有什么技術(shù)含量,大牛勿噴。呵呵。。


 在介紹實(shí)例之前先來剪短了解一下加密的概念。
 加密是指通過某種特殊的方法,更改已有信息的內(nèi)容,使得未授權(quán)的用戶即使得到了加密的信息,如果沒有正確解密的方法,那么也無法得到信息的內(nèi)容。

 談到加密的話題,一些讀者朋友一定非常感興趣,而且會(huì)聯(lián)想到復(fù)雜的加密算法,本實(shí)例只是使用異或"^"運(yùn)算符簡單的實(shí)現(xiàn)對(duì)數(shù)字加密的功能。

【關(guān)鍵技術(shù)】
 本實(shí)例實(shí)現(xiàn)時(shí)主要使用了“異或”運(yùn)算符對(duì)數(shù)字進(jìn)行“異或”運(yùn)算,達(dá)到簡單加密數(shù)字的目的,下面對(duì)其進(jìn)行詳細(xì)的講解:

 本文主要使用的是加密數(shù)字,如果是文字等,可以將其轉(zhuǎn)換為byte、然后進(jìn)行加密后再轉(zhuǎn)回來,即可實(shí)現(xiàn)加密,解密的話將其轉(zhuǎn)為byte、計(jì)算后再轉(zhuǎn)回來即可。

 很多簡單的注冊機(jī)既是使用PCId、硬盤ID等組合后加密實(shí)現(xiàn)的注冊碼。


 “異或”運(yùn)算符"^"用于比較兩個(gè)二進(jìn)制數(shù)的相應(yīng)位。在執(zhí)行按位"異或"運(yùn)算是,如果兩個(gè)二進(jìn)制數(shù)的相應(yīng)位都為1或兩個(gè)二進(jìn)制數(shù)的相應(yīng)位都為0,則返回0;如果兩個(gè)二進(jìn)制數(shù)的相應(yīng)位其中一個(gè)為1另一個(gè)為0,則返回1。

 現(xiàn)在來了解一下使用“異或”加密或解密的執(zhí)行過程,數(shù)值23轉(zhuǎn)換為二進(jìn)制位10111,加密數(shù)字的數(shù)值15轉(zhuǎn)換為1111.
 對(duì)比兩個(gè)二進(jìn)制數(shù)的值,從右向左按位對(duì)比,如果兩個(gè)二進(jìn)制數(shù)的相應(yīng)位都為1或兩個(gè)二進(jìn)制數(shù)的相應(yīng)位都為0,則返回0,;如果兩個(gè)二進(jìn)制數(shù)的相應(yīng)位中一個(gè)為1,另一個(gè)為0,則返回1.
 最后得到加密結(jié)果24于數(shù)字15進(jìn)行“異或”運(yùn)算,將24轉(zhuǎn)換二進(jìn)制為11000,將15轉(zhuǎn)換二進(jìn)制為1111,進(jìn)行“異或”運(yùn)算后,得到結(jié)果為23,這樣有還原了加密的數(shù)據(jù)。

【設(shè)計(jì)過程】
 (1) 打開Visual Studio,新建Windows窗體應(yīng)用程序,命名為Encrypt。
 (2)更改默認(rèn)窗體Form1的Name屬性為FrmEncrypt。窗體布局如下所示:
使用^運(yùn)算符對(duì)數(shù)字進(jìn)行加密 

 關(guān)鍵源碼如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Encrypt{     public partial class FrmEncrypt : Form  {          public FrmEncrypt()          {               InitializeComponent();          }          PRivate void btn_Encrypt_Ok_Click(object sender, EventArgs e)          {               int P_int_Num, P_int_Key;               if (int.TryParse(this.txt_Num.Text, out P_int_Num) && int.TryParse(this.txt_Key.Text, out P_int_Key))               {                    this.txt_Encrypt_1.Text = this.txt_Encrypt_2.Text = (P_int_Num ^ P_int_Key).ToString();               }               else               {                    MessageBox.Show("請(qǐng)輸入數(shù)值!", "出現(xiàn)錯(cuò)誤:");               }          }          private void btn_Revert_Ok_Click(object sender, EventArgs e)          {               int P_int_Key, P_int_Encrypt;               if (int.TryParse(this.txt_Encrypt_2.Text, out P_int_Key) && int.TryParse(this.txt_Key.Text, out P_int_Encrypt))               {                    this.txt_Revert.Text = (P_int_Encrypt ^ P_int_Key).ToString();               }               else               {                    MessageBox.Show("請(qǐng)輸入數(shù)值!", "出現(xiàn)錯(cuò)誤:");               }          }     }}關(guān)鍵代碼

  

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 韩城市| 武汉市| 藁城市| 泽库县| 开化县| 五台县| 南宫市| 张家川| 炎陵县| 巴林左旗| 定兴县| 化隆| 贡山| 庆安县| 崇左市| 昭觉县| 韩城市| 新龙县| 织金县| 广东省| 莱阳市| 新民市| 旬阳县| 华安县| 辽宁省| 永康市| 栖霞市| 华亭县| 克什克腾旗| 正蓝旗| 独山县| 三原县| 南召县| 宝坻区| 顺昌县| 日土县| 建宁县| 曲水县| 延寿县| 随州市| 布尔津县|