国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 蓬安县| 棋牌| 高阳县| 奉新县| 彩票| 长海县| 潢川县| 日照市| 杭锦旗| 莎车县| 罗江县| 朝阳县| 峨山| 蚌埠市| 千阳县| 兴山县| 东明县| 郧西县| 青冈县| 花莲市| 天峨县| 五莲县| 天津市| 江北区| 伊春市| 特克斯县| 辛集市| 肥东县| 抚顺县| 阳山县| 察雅县| 谢通门县| 泾源县| 鄂托克前旗| 江西省| 山东省| 大同市| 邵阳市| 沙河市| 文成县| 梧州市|