C语言实现RC4加解密算法

C语言实现RC4加解密算法

    • RC4加解密

RC4加解密

#include<stdio.h>/*
RC4初始化函数
*/
void rc4_init(unsigned char* s, unsigned char* key, unsigned long Len_k)
{int i = 0, j = 0;char k[256] = { 0 };unsigned char tmp = 0;for (i = 0; i < 256; i++) {s[i] = i;k[i] = key[i % Len_k];}for (i = 0; i < 256; i++) {j = (j + s[i] + k[i]) % 256;tmp = s[i];s[i] = s[j];s[j] = tmp;}
}/*
RC4加解密函数
unsigned char* Data     加解密的数据
unsigned long Len_D     加解密数据的长度
unsigned char* key      密钥
unsigned long Len_k     密钥长度
*/
void rc4_crypt(unsigned char* Data, unsigned long Len_D, unsigned char* key, unsigned long Len_k) //加解密
{unsigned char s[256];rc4_init(s, key, Len_k);int i = 0, j = 0, t = 0;unsigned long k = 0;unsigned char tmp;for (k = 0; k < Len_D; k++) {i = (i + 1) % 256;j = (j + s[i]) % 256;tmp = s[i];s[i] = s[j];s[j] = tmp;t = (s[i] + s[j]) % 256;Data[k] = Data[k] ^ s[t];}
}
void main()
{//字符串密钥unsigned char key[] = "zstuctf";unsigned long key_len = sizeof(key) - 1;//数组密钥//unsigned char key[] = {};//unsigned long key_len = sizeof(key);//加解密数据unsigned char data[] = { 0x7E, 0x6D, 0x55, 0xC0, 0x0C, 0xF0, 0xB4, 0xC7, 0xDC, 0x45,0xCE, 0x15, 0xD1, 0xB5, 0x1E, 0x11, 0x14, 0xDF, 0x6E, 0x95,0x77, 0x9A, 0x12, 0x99 };//加解密rc4_crypt(data, sizeof(data), key, key_len);for (int i = 0; i < sizeof(data); i++){printf("%c", data[i]);}printf("\n");return;
}
//zstuctf{xXx_team_Is_GooD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element.style内联样式修改

最近在修改我个人博客的一个样式时发现&#xff0c;无论我如何修改style里面的值&#xff0c;页面上的样式都不会被修改&#xff0c;F12检查一下发现个element.style&#xff0c;但是却找不到这个值在哪里&#xff0c;查资料后才知道element.style为内联样式&#xff0c;基本很…

if(!ispostback)其用法和作用 什么时候该用?

&#xff08;1&#xff09;if (!IsPostBack) 里面的代码只执行一遍&#xff0c;即页面第一次加载时。 &#xff08;2&#xff09;以后页面重新刷新时&#xff0c;if (!IsPostBack)里面的语句不执行。 &#xff08;3&#xff09;首次建立页面 IsPostBack为false&#xff0c;用来…

C语言实现SM4加解密算法

C语言实现SM4加解密算法SM4加解密SM4加解密 #include <string.h> #include <stdio.h> #include <time.h> /*--------------------------------------------------------------------------------------------------------------*/ #define SM4_ENCRYPT …

免费CDN:jsDelivr+Github 使用方法

CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。CDN是构建在网络之上的内容分发网络&#xff0c;依靠部署在各地的边缘服务器&#xff0c;通过中心平台的负载均衡、内容分发、调度等功能模块&#xff0c;使用户就近获取所需内容&#xff0c;降低网络拥塞&…

EasyUI学习总结(一)——EasyUI入门

一、EasyUI下载 EasyUI官方下载地址&#xff1a;http://www.jeasyui.com/download/index.php&#xff0c;目前最新的版本是&#xff1a;jQuery EasyUI 1.4.1 下载完成之后&#xff0c;得到压缩包&#xff0c;解压后&#xff0c;得到一个【jquery-easyui-1.4.1】文件夹&#xff…

PWN-PRACTICE-CTFSHOW-1

PWN-PRACTICE-CTFSHOW-1PWN签到题pwn02pwn03pwn04PWN签到题 nc连上去就会打印flag pwn02 栈溢出&#xff0c;覆盖返回地址为后门函数stack起始地址即可 # -*- coding:utf-8 -*- from pwn import * #ioprocess("./pwn1") ioremote("pwn.challenge.ctf.show&…

利用QQ邮箱设置个性域名邮箱,并在网易邮箱大师客户端添加域名邮箱

平常我们使用的邮箱都是xxxqq.com、xxx126.com、xxx163.com、xxxgmail.com之类的&#xff0c;这些邮箱会暴露你的QQ号、电话号等信息&#xff0c;最重要的是后缀都和别人一样&#xff0c;没有个性&#xff0c;也许你看见过xxxliruihao.com、xxxwangxiaoxiao.com之类的带有个性后…

MVC和WebForm区别

WebForm的理解 1、 WebForm概念 ASP.NETWebform提供了一个类似于Winform的事件响应GUI模型&#xff08;event-drivenGUI&#xff09;&#xff0c;隐藏了HTTP、HTML、JavaScript等细节&#xff0c;将用户界面构建成一个服务器端的树结构控件&#xff08;Control&#xff09;&a…

PWN-PRACTICE-CTFSHOW-2

PWN-PRACTICE-CTFSHOW-2pwn05pwn06pwn0701栈溢出之ret2textpwn05 栈溢出&#xff0c;覆盖返回地址为后门函数getFlag起始地址即可 # -*- coding:utf-8 -*- from pwn import * context.log_level"debug" #ioprocess("./pwn1") ioremote("pwn.challen…

VMware Pro 15 安装 Deepin15.9 国产操作系统详细教程

Deepin是由武汉深之度科技有限公司开发的Linux发行版&#xff0c;个人认为其界面设计非常美观&#xff0c;而且作为国产操作系统&#xff0c;值得我们去体验和支持&#xff01; 文章目录1.下载安装 VMware Workstation Pro 152.下载 Deepin15.9 系统3.在 VMware 中创建虚拟机4.…

Asp.Net WebForm生命周期的详解

一&#xff0e;http://Asp.Net页面生命周期的概念 当我们在浏览器地址栏中输入网址&#xff0c;回车查看页面时&#xff0c;这时会向服务器端IIS&#xff09;发送一个request请求&#xff0c;服务器就会判断发送过来的请求页面&#xff0c;当完全识别 TTP页面处理程序类后&…

PWN-PRACTICE-CTFSHOW-3

PWN-PRACTICE-CTFSHOW-3pwn10萌新赛-签到题萌新赛-数学99内部赛-签到题pwn10 格式化字符串漏洞&#xff0c;覆写num为16即可打印出flag # -*- coding:utf-8 -*- from pwn import * context.log_level"debug" #ioprocess("./pwn1") ioremote("pwn.ch…

Python PEP8 代码规范常见问题及解决方法

之前一直用 Python IDLE 写代码&#xff0c;最近换成 PyCharm 写代码总是会出现波浪号&#xff0c;这才了解到 Python 的 PEP8 代码规范&#xff0c;所以将常见的 PEP8 代码规范问题和解决方法记录一下&#xff0c;学习一下&#xff0c;遇到了再持续更新&#xff0c;养成良好的…

基于.NET平台的分层架构实战(一)——综述

通过浏览博客园的文章发现&#xff0c;很多朋友对分层架构特别感兴趣&#xff0c;刚好我刚做完的毕业设计就是专门研究.NET平台上分层架构的&#xff08;题目叫“基于.NET平台的分层架构与设计模式应用研究”&#xff09;。通过做这篇论文&#xff0c;我对分层架构有了一定的了…

Eclipse 通过 JDBC 连接 SQL Server

文章目录1.配置 SQL Server 20122.开启 Telnet 服务3.测试1433端口是否打开4.下载JDBC5.Eclipse 连接 SQL Server6.测试连接本文用到的软件版本以及相关环境&#xff1a; Eclipse Photon Release (4.8.0) JDK-10.0.2 SQL Server 2012 1.配置 SQL Server 2012 打开 SQL Server …

PWN-PRACTICE-CTFSHOW-4

PWN-PRACTICE-CTFSHOW-4BJDCTF2020-babyrouterBJDCTF2020-babystackBJDCTF2020-dizzyBJDCTF2020-encryptde stackBJDCTF2020-babyrouter 栈溢出&#xff0c;ret2libc # -*- coding:utf-8 -*- from pwn import * context.log_level"debug" #ioprocess("./pwn1&…

SQL Server 登录更换【Windows身份验证】为【SQL Server 身份验证】

1、安装好 SQL Server 后&#xff0c;使用 Windows 身份验证登陆SQL&#xff0c;然后在服务器上右键&#xff0c;选择【属性】&#xff0c;在弹出的窗口中选择【安全性】&#xff0c;在服务器身份验证项里勾选【SQL Server 和 Windows 身份验证模式】&#xff0c;点击确定保存 …

基于.NET平台的分层架构实战(二)——需求分析与数据库设计

基于.NET平台的分层架构实战&#xff08;五&#xff09;——接口的设计与实现 基于.NET平台的分层架构实战&#xff08;四&#xff09;——实体类的设计与实现 基于.NET平台的分层架构实战&#xff08;三&#xff09;——架构概要设计 基于.NET平台的分层架构实战&#xff0…

PWN-PRACTICE-CTFSHOW-5

PWN-PRACTICE-CTFSHOW-5BJDCTF2020-router36D杯-签到36D杯-babyFmtstr36D杯-MagicStringBJDCTF2020-router 36D杯-签到 栈溢出&#xff0c;用ROPgadget找到一个"sh"字符串&#xff0c;ROP&#xff0c;程序过滤了cat和空格&#xff0c;more<flag绕过即可 # -*- c…

Hexo 博客自定义一个不使用主题模板渲染的独立页面

2022-01-25 更新&#xff1a;博客新地址&#xff1a;https://www.itbob.cn/&#xff0c;文章距上次编辑时间较远&#xff0c;部分内容可能已经过时&#xff01; Hexo 是一个轻量、快速&#xff0c;简单和强大的博客框架&#xff0c;当我们需要发布博文的时候&#xff0c;只需要…