標(biāo)題: 用C語言異或進行加密與解密運算 [打印本頁]

作者: f556    時間: 2019-12-31 17:18
標(biāo)題: 用C語言異或進行加密與解密運算
前久寫《不用中間數(shù)交換兩個變量的方法》反響不錯,其中用到了異或運算。今天看《通信原理》書,提了數(shù)字信息可以很方便地進行加密與解密運算,用到了異或。
隨手寫了個實例玩玩:
unsigned int aa=3456;
void main( void )
{
      unsigned int pwd=5438;
      aa ^= pwd;  //加密

      aa ^= pwd; //解密
}
沒有用函數(shù)、指針傳遞參數(shù)形式來寫,更顯的簡單,就兩行語句。

定理:一個數(shù)與另一個數(shù)做兩次異或運算后得到原值,或者說恢復(fù)到原來的值。
運行過程如圖,感謝IAR的方便。

1.jpg (23.66 KB, 下載次數(shù): 274)

加密運算前

加密運算前

2.jpg (23.95 KB, 下載次數(shù): 252)

已加密

已加密

3.jpg (19.31 KB, 下載次數(shù): 249)

解密運算后,得到原值

解密運算后,得到原值

作者: lwx313    時間: 2020-1-3 09:30
嗯嗯,學(xué)習(xí)了
作者: zxlong123456    時間: 2020-1-7 19:49
學(xué)習(xí)了,謝謝
作者: lindeijun1    時間: 2020-1-11 08:34
謝謝樓主分享!!
作者: hfj2011    時間: 2020-1-11 12:02
很有收獲,謝謝分享
作者: chabao    時間: 2020-1-11 12:25
這個厲害
作者: sfdbhgfhdf    時間: 2020-1-13 14:21

很有收獲,謝謝分享
作者: sunx    時間: 2020-1-20 13:38
謝謝分享
作者: azxiaxp    時間: 2020-1-31 11:59
好厲害,簡單可行。
作者: xiaoniren    時間: 2020-2-3 12:20
學(xué)習(xí)了有用
作者: wsh791    時間: 2020-2-3 16:56
學(xué)習(xí)一下,謝謝分享
作者: 戀上天山    時間: 2020-2-7 14:51
學(xué)習(xí)一下,謝謝分享
作者: xiaobing318    時間: 2020-2-13 15:25

學(xué)習(xí)一下,謝謝分享!!
作者: 1238    時間: 2020-2-14 09:31
學(xué)習(xí)了,謝謝分享
作者: demoncr    時間: 2020-2-14 19:54
學(xué)習(xí)了,謝謝分享
作者: diguapi    時間: 2020-2-16 23:02
學(xué)習(xí)一下,謝謝分享
作者: waas1987    時間: 2020-2-17 14:03
學(xué)習(xí)了,,多謝,,,
作者: 000000123456    時間: 2020-2-18 19:06
學(xué)習(xí)一下
作者: shenshaohai    時間: 2020-2-18 21:40
這樣子搞 有什么作用嗎
作者: yxh1999    時間: 2020-2-25 11:54
學(xué)習(xí)了,謝謝!
作者: yxh1999    時間: 2020-2-25 12:08
這樣子搞 有什么作用嗎???
作者: r121    時間: 2020-2-29 08:34
謝謝分享
作者: striverss    時間: 2020-3-2 08:14
嗯嗯,我們做家電聯(lián)網(wǎng)的也使用類似的加密。
作者: barlai    時間: 2020-3-11 07:37
學(xué)習(xí)了!
作者: zhao學(xué)海無涯    時間: 2020-3-11 14:28
好專業(yè),厲害,見識了。
作者: jhy8341    時間: 2020-3-15 21:06
可以用在串口通信數(shù)據(jù)加密
作者: 1過熱或    時間: 2020-3-25 00:11
32的話可以直接用crc
作者: 新洲羅遠    時間: 2020-4-22 20:27
這個算法在通訊中常用,因為異或是最簡單方便的改變數(shù)據(jù)形式的方式。
作者: tieq1952    時間: 2020-4-23 06:30
謝謝分享!!!
作者: univers    時間: 2020-4-25 15:10
學(xué)習(xí)了,謝謝。
作者: 1632169924    時間: 2020-5-15 10:28
學(xué)習(xí)了,謝謝
作者: SSH0911    時間: 2020-5-17 11:08
感謝分享,學(xué)到了謝謝
作者: romking11    時間: 2020-5-25 15:51
技術(shù)就是知道了就簡單,不知道就是黑匣子。
作者: ycdish    時間: 2020-5-29 23:43
學(xué)習(xí)了謝謝
作者: 編程小小白    時間: 2020-6-4 10:11
謝謝了 學(xué)習(xí)稻了
作者: zaina    時間: 2020-6-5 15:10
大贊 鉆研哦
作者: 著急的迷糊    時間: 2020-6-8 14:32
太神奇了
作者: 清茗醬w    時間: 2020-6-8 17:49
感謝分享
作者: lijunxing    時間: 2020-7-19 12:09
這個正是我想要的  感謝分享
作者: th_5088    時間: 2020-7-27 21:59
學(xué)習(xí)了,非常感謝!
作者: 84876002    時間: 2020-8-30 08:32
還能這樣,學(xué)習(xí)了。
作者: William_Han    時間: 2020-9-20 10:29
條例清晰,整理全面,好資料,謝謝分享!。
作者: tyxshit    時間: 2020-11-11 15:05
學(xué)習(xí)了,希望有更多的分享
作者: caobinbin@@    時間: 2020-11-16 09:09
這個好簡單
作者: 15605230262    時間: 2021-1-22 19:25
被我學(xué)到了
作者: rundstedt    時間: 2021-1-23 18:02
加密強度太低了,建議樓主搜下TEA、XTEA、XXTEA、Poly1305,ChaCha20之類的加密算法,雖然也是基于異或,但是加密強度不知道比你高到哪里去了。
作者: CQQ@123    時間: 2021-1-27 08:18
感謝樓主分享,受教了!
作者: chenxianyu    時間: 2021-3-6 13:01
學(xué)習(xí)了。不錯的創(chuàng)意

作者: fyw2238881376    時間: 2021-4-25 19:18
高級!!
作者: Dd_d    時間: 2021-6-7 23:45
有幫助,謝謝樓主去學(xué)習(xí)了
作者: zyluglugl    時間: 2021-8-5 18:56
樓主分享這個思路太好了,開銷少!
作者: mahdi    時間: 2022-4-19 15:40
這個真是簡單好用
作者: 624353765    時間: 2022-5-30 07:35
還有加,減,位取反都可以實現(xiàn),組合使用能達到更復(fù)雜的加密效果
作者: 鵜鶘    時間: 2022-6-11 21:41
哈哈,同好,,,,我也寫了一個完全實用的程序,起初是在DOS下用匯編語言寫的.com程序,對任意文件加密,算法就是這個,這個就是經(jīng)典加密算法中的“維多利亞”算法在電腦上的實現(xiàn)。說來話長了,十五六年前我把北航的CAXA程序的加密盤給破解了,完全手工花了我兩個月時間,那個時候干勁真足。。。。。破解的過程中我學(xué)到了這個方法。一開始就在DOS的DEBUG下直接編寫匯編,寫好后使用不太方便,后來又用MASA6正式的從寫了一遍,五六年前又用VB寫成了Windows程序。
作者: Qlthlth    時間: 2022-7-16 07:56
有收獲
作者: 大漠落日    時間: 2022-7-29 07:46
這樣加密太快了,
作者: 8800    時間: 2022-10-28 16:34
還有這種用法,學(xué)習(xí)了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1