Openssl-Blowfish

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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值