现在的位置: 首页 > 综合 > 正文

Openssl-Blowfish

2017年11月11日 ⁄ 综合 ⁄ 共 1266字 ⁄ 字号 评论关闭

Blowfish是一种对称加密算法,密钥长度16个字节,加密的数据块长度是8个字节,由于加密/解密需要的时间长,一般用于用户密码加盐算法的加密上。

openssl中提供的blowfish函数,与DES,AES算法相同,下面是简要的介绍。

void BF_set_key(BF_KEY *key, int len, const unsigned char *data);

设定Key;

key: Blowfish key对象;

len: 数据长度;

data: 密钥数据;

void BF_encrypt(BF_LONG *data,const BF_KEY *key);

单个数据块的加密;

data: 数据,输入/输出是相同的数据区;

key: blowfish密钥数据;

void BF_decrypt(BF_LONG *data,const BF_KEY *key);

单个数据块解密;

void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,

    const BF_KEY *key, int enc);

BlowFish的ECB加密/解密计算;

in: 源数据;

out: 输出数据;

key: 密钥对象;

enc:加密/解密模式, 加密: BF_ENCRYPT, 解密:BF_DECRYPT

void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,

    const BF_KEY *schedule, unsigned char *ivec, int enc);

BlowFish的CBC加密/解密计算;

in: 源数据;

out: 输出数据;

length: 数据长度;

schedule: 密钥对象;

ivec: 初始化向量;

enc:加密/解密模式, 加密: BF_ENCRYPT, 解密:BF_DECRYPT

void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length,

    const BF_KEY *schedule, unsigned char *ivec, int *num, int enc);

BlowFish的CFB64加密/解密计算;

in: 源数据;

out: 输出数据;

length: 数据长度;

schedule: 密钥对象;

ivec: 初始化向量;

num: 参与计算的block数;

enc:加密/解密模式, 加密: BF_ENCRYPT, 解密:BF_DECRYPT

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

BlowFish的OFB64加密计算;

in: 源数据;

out: 输出数据;

length: 数据长度;

schedule: 密钥对象;

ivec: 初始化向量;

num: 参与计算的block数;

const char *BF_options(void);

BlowFish的选项;

【上篇】
【下篇】

抱歉!评论已关闭.