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学习篇之base64编码、解码;md5 摘要;sha1摘要;3des加密,解密;rsa算法

openssl学习篇之base64编码、解码 完善在上一篇 “openssl学习篇之base64编码、解码中有写出实现的代码, 经实际的运行中,发现如果字符串长超过47会产生BUG,返回空,所以修正了...

使用openssl库进行DES加密

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

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

首先看下我们的文件结构: OpenSSL文件 com_csii_desjni_DESJniUtil.c#include #include #include #include #inclu...

openssl des 加密解密

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

C语言利用openSSL库DES模块加密

在通讯过程中为了防止普通的玩家截取协议修改内容并且发送,我们是有必要对协议进行加密的。当前这样的加密手段都已经是变成世界里面的基础设施了。我们只需要将其引入到工程中就好。本文将会基于OpenSSL来编...

Openssl Des - 1

DES部分的编码,和AES有明显的不同,作者应该不是同一个人。 显卡一下类型的定义: 定义了参与计算的数据类型,其实就是字符数组。 typedef unsigned char DES_cbl...

openssl 实现SHA1,DES等加密算法

编码规则:Digest = Base64(SHA1(str1 + “”+TimeStamp));Result=URLEncoding(ID+”” + TimeStamp)); Result = ...

openssl实现3des对称加密

转至:http://blog.csdn.net/lyjinger/article/details/1722570 #include #include #include #include /*...

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

#include #include #include #include "openssl/md5.h" #include "openssl/sha.h" #include "openssl/de...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Openssl Des-2
举报原因:
原因补充:

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