Openssl Des-2

翻译 2012年03月25日 12:18:07
int DES_enc_read(int fd,void *buf,int len,DES_key_schedule *sched,

         DES_cblock *iv);

使用此函数时要小心,如果写入的数据超过MAXWRITE个字节,那么数据将会被分割成多个数据块,每个数据加密时使用的IV相同。因此,在使用此函数时,一定要了解此函数的内部实现机制;

此函数客户从文件,或者socket等输入设备中读取数据,并解密数据;

解密模式根据DES_rw_mode的定义,采用PCBC或者CBC模式;

fd: 设备描述符;

buf: 输出数据缓冲区;

len: 长度;

sched: 密钥;

iv: 初始化向量;

返回值: -1 错误,其他数据,读取的数据长度;


int DES_enc_write(int fd,const void *buf,int len,DES_key_schedule *sched,
          DES_cblock *iv);

使用此函数时要小心,如果写入的数据超过MAXWRITE个字节,那么数据将会被分割成多个数据块,每个数据加密时使用的IV相同。因此,在使用此函数时,一定要了解此函数的内部实现机制;

此函数将数据加密后写入文件,或者socket等输出设备;

加密模式根据DES_rw_mode的定义,采用PCBC或者CBC模式;

fd: 设备描述符;

buf: 输入数据缓冲区;

len: 长度;

sched: 密钥;

iv: 初始化向量;

返回值: -1 错误,其他数据,写入的数据长度;

char *DES_fcrypt(const char *buf,const char *salt, char *ret);

DES_fcrypt()是Unix下crypt算法的更快的一种实现,值需要使用少量的内存空间,与通常的crypt不同,第三个参数是返回值,至少需要14个字节的空间;

此函数支持多线程调用;


char *DES_crypt(const char *buf,const char *salt);

此函数调用DES_fcrypt,第三个参数由一个静态数组替代,所以此函数在多线程调用下是不安全的;


void DES_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits,

             long length,DES_key_schedule *schedule,DES_cblock *ivec);

DES OFB 加密;

in: 输入数据;

out:输出数据;

numbits: OFB位数;

length: 数据长度;

schedule: 密钥;

ivec: 初始化向量;


void DES_pcbc_encrypt(const unsigned char *input,unsigned char *output,

              long length,DES_key_schedule *schedule,DES_cblock *ivec,

              int enc);

Kerberos v4中用到的算法, 加密/解密时使用传播块链式模式;

input: 输入数据;

output: 输出数据;

length: 数据长度;

schedule: 密钥;

ivec: 初始化向量;

enc: 加密/解密 加密: DES_ENCRYPT , 解密: DES_DECRYPT


DES_LONG DES_quad_cksum(const unsigned char *input,DES_cblock output[],            long length,int out_count,DES_cblock *seed);

同样是Kerberos v4中用到的函数,返回输入数据的4个字节的checksum。算法迭代次数有out_count控制,可以是1,2,3,或者4此,输入时非空的8个字节;

input: 输入数据;

output: 输出数据,用于计算迭代时输出数据缓存;

length:数据长度;

out_count:迭代次数;

seed: 种子数据;

返回值为4个字节的checksum,DES_LONG类型;


int DES_random_key(DES_cblock *ret);

0.9.5版本之前,用于生成加密用的随机数,MIT 库中也使用此函数;

返回值: 1 成功, 0 失败;


void DES_set_odd_parity(DES_cblock *key);

将传入的密钥设为奇数;


int DES_check_key_parity(const_DES_cblock *key);

检查密钥的奇偶性;

0:密钥值中存在偶数;1: 密钥值为奇数;


int DES_is_weak_key(const_DES_cblock *key);

检查密钥是否为弱密钥;

1: 为弱密钥, 0: 不是弱密钥;



openssl des 加密解密

最近在整理关于数据加密解密的资料,整合C/C++、.NET、JAVA三个平台的数据加解密资料,使得三个平台调用相关函数加解密得到的结果都是一致的,兼容的。 ps:最后整理的资料可能会以电子版pdf的...
  • tianjian_blog
  • tianjian_blog
  • 2015年02月12日 09:21
  • 1862

使用openssl库进行DES加密

openssl库实现了大多数的加密算法,如AES,DES,RSAdend
  • p0x1307
  • p0x1307
  • 2014年10月15日 19:35
  • 3367

Android 使用OpenSSL进行3DES加密 c与java互通

首先看下我们的文件结构: OpenSSL文件 com_csii_desjni_DESJniUtil.c#include #include #include #include #inclu...
  • gubojun123
  • gubojun123
  • 2016年07月11日 16:32
  • 1679

OpenSSL之DES api语法初识

DES api: 1、数据结构:typedef unsigned char DES_cblock[8]; typedef /* const */ unsigned char const_DES_cb...
  • qq_34415866
  • qq_34415866
  • 2017年12月23日 20:37
  • 14

C/C++使用openssl进行摘要和加密解密(md5, sha256, des, rsa)

penssl里面有很多用于摘要哈希、加密解密的算法,方便集成于工程项目,被广泛应用于网络报文中的安全传输和认证。下面以md5,sha256,des,rsa几个典型的api简单使用作为例子。   ...
  • qq_37990044
  • qq_37990044
  • 2017年12月01日 17:39
  • 144

OPENSSL库的使用-DES篇

一、单DES算法ECB模式加解密 1、使用函数DES_set_key_unchecked设置密钥 2、使用函数DES_ecb_encrypt来进行数据加解密 void DES_ecb_encrypt(...
  • duanxingheng
  • duanxingheng
  • 2013年09月13日 18:03
  • 8572

使用openssl库进行DES加密

openssl库实现了大多数的加密算法,如AES,DES,RSAdend
  • p0x1307
  • p0x1307
  • 2014年10月15日 19:35
  • 3367

openssl des 加密解密

最近在整理关于数据加密解密的资料,整合C/C++、.NET、JAVA三个平台的数据加解密资料,使得三个平台调用相关函数加解密得到的结果都是一致的,兼容的。 ps:最后整理的资料可能会以电子版pdf的...
  • tianjian_blog
  • tianjian_blog
  • 2015年02月12日 09:21
  • 1862

Android 使用OpenSSL进行3DES加密 c与java互通

首先看下我们的文件结构: OpenSSL文件 com_csii_desjni_DESJniUtil.c#include #include #include #include #inclu...
  • gubojun123
  • gubojun123
  • 2016年07月11日 16:32
  • 1679

OpenSSL中对称加密算法DES常用函数使用举例

在这里转载,当自己记录一个笔记吧,转自:http://blog.csdn.net/fengbingchun/article/details/42611875 主要包括3个文件: ...
  • yangyangye
  • yangyangye
  • 2015年05月23日 15:06
  • 1684
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Openssl Des-2
举报原因:
原因补充:

(最多只允许输入30个字)