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
C语言实现RC4加解密算法相关推荐
- 现代密码学实验2 RC4加/解密算法
赞赏码 & 联系方式 & 个人闲话 [实验名称]RC4加/解密算法 [实验目的] 1.理解流密码的概念及相关结构: 2.理解并能够编写基本的流密码体制: 3.熟练应用一种编程语言实现R ...
- C语言实现DES加解密算法
C语言实现DES加解密算法 DES加解密 DES加解密 #include <stdio.h> #include <stdlib.h> #include <string.h ...
- C语言实现AES加解密算法
C语言实现AES加解密算法 AES加解密 AES加解密 #include <stdio.h> #include <stdint.h> #include <memory.h ...
- C语言实现SM4加解密算法
C语言实现SM4加解密算法 SM4加解密 SM4加解密 #include <string.h> #include <stdio.h> #include <time.h&g ...
- C语言RSA实现对字符串加密,C语言实现RSA加解密算法
http://www.open-open.com/code/view/1435718537888 2015.071. RSA说明 RSA公钥加密算法是1977年由Ron Rivest.Adi Sham ...
- RC4加密解密算法原理及实现对文件的加解密
本文简单实现了RC4算法对于文件的加解密,并已经验证成功.同时实现了对RC4算法加解密较大文件的测速 RC4加密解密算法的原理: 首先,通过我的理解,RC4算法所依赖的最根本原理是:对明文使用同一个密 ...
- java rc4_java实现的RC4加密解密算法示例
本文实例讲述了java实现的RC4加密解密算法.分享给大家供大家参考,具体如下: 有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个Java 版本的RC4加解密算法. publi ...
- C语言实现TEA系列加解密算法
C语言实现TEA系列加解密算法 TEA加解密 XTEA加解密 XXTEA加解密 TEA加解密 #include <stdio.h> #include <stdint.h>//加 ...
- 凯撒加密的python语言程序_python实现凯撒密码、凯撒加解密算法
凯撒密码的原理:计算并输出偏移量为3的凯撒密码的结果 注意:密文是大写字母,在变换加密之前把明文字母都替换为大写字母 def casar(message): # *************begin* ...
最新文章
- 文章 图片 PHP保存,关于文章图片储存
- 响应式网站建设优势有哪些?
- django_rest_framework之解析器、渲染器
- web python pkcs11_使用pkcs11模块用公钥加密数据失败
- Asp.net创建伪静态页面
- Tomcat、JDK 历史版本下载地址
- Java中print、printf、println的区别(转载)
- w7 internet信息服务器,Win7安装IIS Internet信息服务步骤
- INDEMIND荣登「AI中国」机器之心2021人工智能年度榜单
- win10磁盘如何解锁bitlocker,解决分区助手无法调整分区问题
- SpringBoot 通过阿里云的短信功能 实现发送手机验证码
- bat运行Java程序
- 警惕Linux的传销投机属性,恢复建立契约商业化社会秩序。
- 计算机二级wps知识点,计算机二级MS office和WPS office如何备考?
- 基于多角度SAR的目标三维几何信息提取技术
- 【零基础学QT】【052】CLion完美搭建Qt开发环境
- CF1385 D. a-Good String (分治+递归)
- 专用神经网络处理器的芯片,cpu可以跑神经网络吗
- 基于飞浆ERNIE3.0百亿级大模型实现中文短文本分类任务
- 常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)