RC5是对称加密算法,由Ronald Rivest在1994年设计的分组加密算法,计算速度快,算法简单,AES作为RC6算法,就是基于RC5而来。

RC5分组是可变的,可以是32,64,128位,密钥长度0到2040位。计算0-255轮,推荐使用的参数为,数据分组64位,密钥长度128位,计算12轮。

void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data,
    int rounds);

设定RC5 的Key对象。

key: 密钥对象;

len: 长度,密钥长度为128位,所以为16;

data: 密钥数据;

void RC5_32_ecb_encrypt(const unsigned char *in,unsigned char *out,RC5_32_KEY *key,
    int enc);

RC5 ECB加密/解密;

in: 源数据;

out:输出数据;

key: 密钥对象;

enc: 加密/解密模式,RC5_ENCRYPT,加密;RC5_DECRYPT,解密;

void RC5_32_encrypt(unsigned long *data,RC5_32_KEY *key);

RC5加密计算,是被其他函数调用的内部函数;

void RC5_32_decrypt(unsigned long *data,RC5_32_KEY *key);

RC5解密函数,是被其他函数调用的内部函数;

void RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out,
            long length, RC5_32_KEY *ks, unsigned char *iv,
            int enc);

RC5 cbc模式加密/解密;

in: 源数据;

out:输出数据;

length:数据长度;

ks: 密钥对象;

iv: 初始化向量;

enc: 加密/解密模式,RC5_ENCRYPT,加密;RC5_DECRYPT,解密;

void RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out,
              long length, RC5_32_KEY *schedule,
              unsigned char *ivec, int *num, int enc);

RC5的cfb64模式加密解密;

in: 源数据;

out:输出数据;

length:数据长度;

schedule: 密钥对象;

ivec: 初始化向量;

num:初始化向量中多少个字节参与计算;

enc: 加密/解密模式,RC5_ENCRYPT,加密;RC5_DECRYPT,解密;

void RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out,
              long length, RC5_32_KEY *schedule,
              unsigned char *ivec, int *num);

RC5的ofb64位模式;

in:源数据;

out: 输出数据;

length: 数据长度;

schedule: 密钥对象;

ivec:初始化向量;

num: 初始化向量中多少个字节参与计算;

Openssl-rc5相关推荐

  1. openssl java使用手册_openssl使用手册

    openSSL有两种运行模式:交互模式和批处理模式. 直接输入openssl回车进入交互模式,输入带命令选项的openssl进入批处理模式. (1) 配置文件 OpenSSL的默认配置文件位置不是很固 ...

  2. Curl安装测试http3——openssl+nghttp3+ngtcp2+curl

    参考链接 (1)原始链接:https://curl.se/docs/http3.html (2)主要参考链接:http://blog.chinaunix.net/uid-405749-id-58444 ...

  3. Linux安全之SSL协议

    SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TL ...

  4. IT运维之安全操作维护手册

    一.概要 IT行业日常运维中,安全工作是其中最重要也是主要的一项工作,且随着近几年对IT行业对安全的更加重视,IT服务的安全稳定,日常工作的安全管理都将是我们必须面对和需要掌握的,本文基于此,整理相关 ...

  5. OpenSSL简介及在Windows、Linux、Mac系统上的编译步骤

    OpenSSL介绍:OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. SSL是SecureSock ...

  6. openssl常用用法

    2019独角兽企业重金招聘Python工程师标准>>> OpenSSL主要有三个组件构成: openssl: 多用途命令行工具 libcrypto: 加密算法库 libssl: 加密 ...

  7. openssl——初了解

    Openssl OpenSSL是一个开源的.用于SSL/TLS协议的加密工具,是互联网加密传输的核心基础组件,由加拿大的Eric Yang等发起编写的,当前互联网安全传输的大部分场景(如HTTPS)均 ...

  8. SSL与OpenSSL关系介绍

    SSL与OpenSSL关系介绍  OpenSSL简介 SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输.Netscape公司在推出第一个W ...

  9. SSL与OpenSSL介绍

    OpenSSL简介 SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议 ...

  10. linux之openssl简单介绍

    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. 在OpenSSL被曝出现严重安全漏洞后,发现多 ...

最新文章

  1. SAP PP MD04结果里没考虑受限使用库存?
  2. zerodivisionerror什么意思python-python里的raise是什么意思
  3. NOIP2009普及组细胞分裂(数论)——yhx
  4. Cloud for Customer的contact主数据function字段下拉菜单的绘制原理
  5. 检测到目标服务器启用了trace方法_深度学习检测小目标常用方法
  6. C++ 指向子类的指针转型为指向父类类型指针之后指向的对象地址不变
  7. java痴和堆_JAVA虚拟机理解 - 爱笑的痴迷者的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. Python函数式编程指南(一):概述
  9. 图解exports 和 module.exports
  10. 2017.10.6 Java命名规范及使用情况
  11. 腾讯广告招人啦,校招优质岗位你不容错过!
  12. 共享计算机ip地址,怎么设置局域网计算机IP地址:局域网计算机共享设置
  13. 彭斌_无人机的发展与未来
  14. Java面试精选(6):单例模式有几种写法?
  15. pool(一)——入门
  16. 漂亮特殊字体可复制_特殊字体生成器 漂亮特殊字体可复制
  17. 第一章 第二节 数字化含义及作用——丁老师
  18. Creo二次开发:创建工程图,生成球标和明细表
  19. 排列组合思维导图_思维模型10 - 排列组合是什么?
  20. 分享91个NET源码,总有一款适合您

热门文章

  1. 斯蒂文斯理工学院计算机科学硕士,美国史蒂文斯理工学院计算机科学专业申请(附案例)...
  2. Ubuntu 16.04 鼠标光标消失的解决方法(右键可弹窗,可以点击)
  3. 开发 web 程序服务 之 源码分析
  4. 留学 计算机音乐,音乐数字媒体出国留学读研申请要求
  5. 35.数据库的DQL的查询数据补充(二)
  6. 【机器学习】SVM支持向量机在手写体数据集上进行二分类、采⽤ hinge loss 和 cross-entropy loss 的线性分类模型分析和对比、网格搜索
  7. 预充电电路工作原理_变频器预充电电路作用
  8. 研发团队如何低成本实现敏捷开发管理
  9. 用 Python 读取气象环境数据并绘图
  10. 用Visual C#做DLL文件http://www.77169.org/classical/HTML/38184.html