本文介绍RC4加解密源码(C语言描述)。
RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4具有加解密速度快,算法简单等优点,在算力不高场合(MCU)也可以使用。
1.源码
1)头文件
头文件(rc4.h)主要包括RC4相关数据结构定义及外部函数声明。头文件定义如下。
#ifndef __RC4_H
#define __RC4_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _RC4_INFO
{
uint8_t s[256];
uint8_t t[256];
}RC4_INFO;
extern void rc4_init(RC4_INFO *RC4Info, const uint8_t *key, uint32_t len);
extern void rc4_crypt(RC4_INFO *RC4Info, const uint8_t *input, uint8_t *output, uint32_t len);
#ifdef __cplusplus
}
#endif
#endif
注意:
a)加密过程,需要先调用rc4_init()函数,再调用rc4_crypt()函数,同样,解密过程,也需要先调用rc4_init()函数,再调用rc4_crypt()函数。加解密使用的是同一个密钥。
b)密钥长度可变,一般为8-256 bits,常用128 bits。</