RE_RC4加密

之前做的幾道題目,rc4也是經常遇到,今來系統學學,記錄一下

對稱加密,即加密和解密的密鑰可以相互推導,也有的是相同的。

RC4 是以字節流處理每一個字節,而不是 DES 的分組操作。

包含三個參數:key? ,enc? , len(enc)

首先就是 S 盒的生成,256個字節,先是0-256填充,然后又用 key,len(key) 去替換 S 盒的部分,形成一個偽隨機的 S 盒。

然后就是 S 盒和密文逐個字節異或,得到密文。解密再異或回去就可以了。

def S_init(key, key_len):S = list(range(256))K = [key[i % key_len] for i in range(256)]j = 0for i in range(256):j = (j + S[i] + K[i]) % 256S[i], S[j] = S[j], S[i]return Sdef encrypt(data, key):key_len = len(key)data_len = len(data)S = S_init(key, key_len)i = 0j = 0enc = bytearray()for byte in data:i = (i + 1) % 256j = (j + S[i]) % 256S[i], S[j] = S[j], S[i]tmp = (S[i] + S[j]) % 256k = S[tmp]enc.append(byte ^ k)return bytes(enc)def decrypt(ciphertext, key):# RC4 decryption is the same as encryptionreturn encrypt(ciphertext, key)if __name__ == "__main__":data=[0xD5, 0xB2, 0x7C, 0xDC, 0x90, 0xA2, 0x6E, 0x60,0x06, 0x13, 0xE4, 0x71, 0x59, 0xB0, 0x90, 0x31,0xB2, 0xC7, 0x1D, 0xD7,0x7f]str='litctf!'key=list(map(ord,str))res=encrypt(data,key)print(res)

[LitCTF 2024]ezrc4

就是一個簡單的 RC4,密文就在開頭,key 最外面是錯的,交叉引用,去得到真 key

enc: 0xD5, 0xB2, 0x7C, 0xDC, 0x90, 0xA2, 0x6E, 0x60,0x06, 0x13, 0xE4, 0x71, 0x59, 0xB0, 0x90, 0x31,0xB2, 0xC7, 0x1D, 0xD7,0x7f

可以直接寫腳本,也可以去動調

main函數之前應該還有反調試,但沒找到,嘖。

這會也沒遇到專門的RC4的了,之后遇到再寫上。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23220.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23220.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23220.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索通信技術的未來:2024中國通信技術和智能裝備產業博覽會

探索通信技術的未來:2024通信技術產業專場 隨著信息技術的飛速發展,通信技術已成為現代社會不可或缺的基礎設施。2024年10月11日至13日,青島將迎來一場通信技術的盛會——2024中國軍民兩用智能裝備與通信技術產業博覽會。本次博覽會不僅將展…

面試(03)————多線程

目錄 一、線程和進程的區別? 二、并行和并發的區別? 三、線程創建的方式有哪些? 3.1、繼承Thread類 3.2、實現Runnable接口 3.3、實現Callable接口 3.4、線程池 四、Runnable和Callable的區別? 五、在啟動線程的時候&am…

使用packstack快速部署OpenStack

目錄 資源列表 基礎環境 安裝packstack 安裝OpenStack 本文記錄了基于CentOS操作系統使用packstack快速部署openstack。 資源列表 操作系統配置磁盤IP數量CentOS7.94C8G50G192.168.207.1551 基礎環境 服務器開啟虛擬化,我這里使用的是VMware虛擬機&#xff0…

Redis教程(二十二):Redis的過期刪除和緩存淘汰策略

傳送門:Redis教程匯總篇,讓你從入門到精通 一、過期刪除策略 Redis 中的過期刪除策略是與 Redis 管理鍵的生命周期相關的一系列操作,用于刪除過期的Key以釋放內存。Redis 提供了三種主要的過期刪除策略: 1、惰性刪除(Lazy Expiration) 工作原理:當客戶端嘗試訪問一個…

書生·浦語大模型全鏈路開源體系-筆記作業4

XTuner 微調 LLM:1.8B、多模態、Agent 引自:Tutorial/xtuner/personal_assistant_document.md at camp2 InternLM/Tutorial GitHub 1. XTuner介紹 引自:歡迎來到 XTuner 的中文文檔 — XTuner 0.1.18.dev0 文檔 1.1. 什么是 XTuner ? X…

修改緩存供應商--EhCache

除了我們默認的緩存形式simlpe之外, 我們其實還有許多其他種類的緩存供應 Ehcache就是其中的一種形式 Ehcache在SpringBoot當中的使用: 其實跟我們之前整合第三方的資源是一樣的形式 1>導入依賴: <!-- 更換緩存, 將默認使用的 Simple 更換為Ehcache--> <depe…

Redis 數據拷貝

一、從db0到db1 將redis數據從db0拷貝到db1&#xff0c;可以使用下面腳本進行復制 REDIS_CLI/usr/local/redis/bin/redis-cli hostredis_host portredis_port passwordredis_password old_base0 new_base1${REDIS_CLI} -h ${host} -p ${port} -a ${password} -n $old_base ke…

【go】windows環境設置goos

場景 本地環境&#xff1a;windows 生產環境&#xff1a;linux 現想在本地將go腳本編譯為可執行二進制文件&#xff0c;轉移至生產中進行運行測試。但go build不生效。 方案&#xff08;修改GOOS&#xff09; cmd打開命令行&#xff0c;執行go env查看本地go環境&#xff0c…

PPT視頻如何16倍速或者加速播放

有兩種方式&#xff0c;一種是修改PPT本身&#xff0c;這種方式非常繁瑣&#xff0c;不太推薦&#xff0c;還有一種就是修改視頻本身&#xff0c;直接讓視頻是16倍速的視頻即可。 如何讓視頻16倍速&#xff0c;我建議人生苦短&#xff0c;我用Python&#xff0c;幾行代碼&…

基本元器件 - 電阻

目錄 電阻的選型 貼片封裝的參數 電阻的阻值 絲印表示方法 標準電阻取值 電阻的失效 0 歐姆電阻的使用 電阻的使用場景 分壓電路 分流電路 限流電路 阻抗匹配電路 RC 充放電電路 上下拉電路 其他電路 電阻的選型 一般來說&#xff0c;要考慮以下四個因素&…

【大模型】基于Hugging Face調用及微調大模型(1)

文章目錄 一、前言二、Transformer三、Hugging Face3.1 Hugging Face Dataset3. 2 Hugging Face Tokenizer3.3 Hugging Face Transformer3.4 Hugging Face Accelerate 四、基于Hugging Face調用模型4.1 調用示例4.2 調用流程概述4.2.1 Tokenizer4.2.2 模型的加載4.2.3 模型基本…

【java 中 IO 流分為幾種?】

文章目錄 概要分類&#xff08;1&#xff09;按照流的方向分類&#xff08;2&#xff09;按照操作數據單位分類&#xff08;3&#xff09;按照IO流的角色分類&#xff08;4&#xff09;常用流的總結 總結 概要 在Java中&#xff0c;IO流主要用于處理數據的傳輸&#xff0c;它們…

軟信天成:告別數據臟亂差!企業數據清洗實戰方案分享

低質量數據普遍存在。據統計&#xff0c;數據質量問題每年給企業造成高達3.1萬億美元的損失。為了防范這種損失&#xff0c;越來越多的企業采用數據清洗來清洗數據&#xff0c;提高數據質量。 數據清洗&#xff0c;顧名思義是將數據上“臟”的部分清洗掉&#xff0c;讓數據變得…

UV膠為什么會開裂?如何避免UV膠開裂?

UV膠為什么會開裂&#xff1f;如何避免UV膠開裂&#xff1f; UV膠開裂可能由以下幾個主要因素導致&#xff1a; 紫外線照射不足&#xff1a;UV膠的固化需要足夠的紫外線能量。如果紫外線照射不足&#xff0c;膠水可能無法完全固化&#xff0c;導致開裂。這可能是由于固化設備…

調試線上資源文件失效問題

之前的老項目&#xff0c;突然報紅&#xff0c;為了定位問題&#xff0c;使用注入和文件替換的方式進行問題定位&#xff01; 1.使用注入 但是刷新后就沒有了&#xff0c;不是特別好用&#xff01; const jqScript document.createElement(script); jqScript.src https://…

從入門到精通:Java三目運算符詳細教程!

哈嘍&#xff0c;各位小伙伴們&#xff0c;你們好呀&#xff0c;我是喵手。運營社區&#xff1a;C站/掘金/騰訊云&#xff1b;歡迎大家常來逛逛 今天我要給大家分享一些自己日常學習到的一些知識點&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相學習&#xff0c;一…

富格林:謹慎欺詐套路防止被騙

富格林指出&#xff0c;近些年來&#xff0c;在全球風險事件頻發的背景下&#xff0c;黃金的避險價值得以凸顯&#xff0c;越來越多投資者被黃金市場可觀的收益所吸引&#xff0c;紛紛加入黃金市場參與投資交易。很多初次接觸黃金的投資者比較關心的是普通投資者如何謹慎欺詐套…

x264 參考幀管理原理:b_ref_reorder 數組變量

b_ref_reorder變量 在x264編碼器中,b_ref_reorder是一個布爾類型的數組,用于標識當前編碼的切片是否需要對參考幀列表進行重排序。這個數組通常有兩個元素,分別對應于兩個參考幀列表:前向參考幀列表(list0)和后向參考幀列表(list1)。 以下是b_ref_reorder的一些關鍵點:…

探索 Linux 中的 Chronyc:一個用于配置和管理 Chrony 的實用工具

探索 Linux 中的 Chronyc&#xff1a;一個用于配置和管理 Chrony 的實用工具 在 Linux 系統中&#xff0c;時間同步是一個至關重要的功能&#xff0c;它確保了系統時間的準確性&#xff0c;對于各種網絡服務和應用來說都至關重要。Chrony 是一個開源的時間同步工具&#xff0c…

SQLserver通過CLR調用TCP接口

一、SQLserver啟用CLR 查看是否開啟CRL&#xff0c;如果run_value1&#xff0c;則表示開啟 EXEC sp_configure clr enabled; GO RECONFIGURE; GO如果未啟用&#xff0c;則執行如下命令啟用CLR sp_configure clr enabled, 1; GO RECONFIGURE; GO二、創建 CLR 程序集 創建新項…