信息安全:OpenSSL之RC4加密简单示例
来源:互联网 发布:mysql字段默认time() 编辑:程序博客网 时间:2024/06/05 22:55
RC4
RC4是流密码算法,流算法以密钥作为种子产生密钥流,然后明文比特流和密钥流进行异或以实现加密.
RC4加密算法密钥长度可变,没有填充的麻烦.
函数
OpenSSL中RC4加密算法主要有两个函数,在openssl/rc4.h中找到.如下:
void RC4_set_key(RC4_KEY *key,int len,const unsigned char *data);
void RC4(RC4_KEY *key,size_t len,const unsigned char *indata,unsigned char *outdata);
示例
#include <stdlib.h>#include <stdio.h>#include <string.h>#include <openssl/rc4.h>int main(int argc,char* argv[]){ RC4_KEY key; unsigned char *data="Hello,World!!"; int length=strlen(data); RC4_set_key(&key,length,data);//设置密钥 unsigned char *indata="This is plain text !!!!"; int len=strlen(indata);// printf("len=%d\n",len); unsigned char *outdata;//分配密文空间 outdata=(unsigned char *)malloc(sizeof(unsigned char)*(len+1)); memset(outdata,0,len+1);//初始为0 printf("\tindata=%s\n",indata); RC4(&key,strlen(indata),indata,outdata);//加密明文 printf("\toutdata=%s\n",outdata); //printf("strlen(outdata)=%d\n",strlen(outdata)); unsigned char *plain;//分配明文空间 plain=(unsigned char *)malloc(sizeof(unsigned char)*(len+1)); memset(plain,0,len+1);//初始化为0 RC4_set_key(&key,length,data);//重新设置密钥 RC4(&key,strlen(outdata),outdata,plain);//解密密文 printf("\tplain=%s\n",plain);// printf("strlen(plain)=%d\n",strlen(plain)); return 0;}
运行结果
0 0
- 信息安全:OpenSSL之RC4加密简单示例
- 信息安全:OpenSSL之AES加密简单示例
- 信息安全:OpenSSL之AES加密简单示例
- 信息安全:OpenSSL之AES加密简单示例
- OpenSSL之RC4加解密
- qt 之加密篇 rc4
- Openssl-rc4
- OpenSSl 加密解密 示例
- OpenSSl 加密解密 示例
- RC4加密解密算法的简单实现
- RC4 加密
- RC4加密
- RC4加密
- RC4加密
- RC4加密
- RC4加密
- 信息安全之公钥私钥加密解密
- 【安全牛学习笔记】WEP加密、RC4算法
- 用Swift实现一款天气预报APP(二)
- UVa 571 - Jugs
- 【HDU 1081】To The Max(求子矩阵元素和)
- 【转】Sublime Text 3 安装Package Control
- (4)存储单词和翻译
- 信息安全:OpenSSL之RC4加密简单示例
- Xcode6为什么干掉pch(Precompile Prefix Header)&如何添加pch文件
- SeekBar得API
- OSG+VS2010+WIN764位编译
- android context.getCacheDir()缓存目录
- (5)存储索引
- Python刷网页(精简版)
- (6)单词和翻译入库
- TP中集成Ucenter