关闭

Openssl-Blowfish

标签: 加密解密算法
3222人阅读 评论(0) 收藏 举报
分类:

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的选项;




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:80178次
    • 积分:972
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:13篇
    • 评论:8条
    文章存档
    最新评论