分享

openssl之EVP系列之3---EVP_Encrypt支持的对称加密算法列表

 MikeDoc 2011-01-04
openssl对称加密算法的格 式都以函数形式提供,其实该函数返回一个该算法的结构体,其形式一般如下:
                                       EVP_CIPHER*EVP_*(void)
     
openssl中,所有提供的对称加密算法长度都是固定的,有特别说明的除外。下面对这些算法进行分类的介绍,首先介绍一下算法 中使用的通用标志的含义。
【通用标志】
ecb——
电子密码本(ElectronicCodeBook)加密 方式
cbc——
加密块链接(CipherBlockChaining)加 密方式
cfb——64
位加密反馈(CipherFeedback)加密方式
ofb——64
位输出反馈(OutputFeedback)加密方式
ede——
该加密算法采用了加密、解密、加密的方式,第一个密钥和最后一 个密钥是相同的
ede3——
该加密算法采用了加密、解密、加密的方式,但是三个密钥都不 相同
NULL算法】
函数:EVP_enc_null()
说明:该算法不作任何事情,也就是没有进行加密处理
DES算法】
函数:EVP_des_cbc(void),EVP_des_ecb(void),EVP_des_cfb(void),EVP_des_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的DES算法
【使用两个密钥的3DES算法】
函数:EVP_des_ede_cbc(void),EVP_des_ede(),EVP_des_ede_ofb(void),EVP_des_ede_cfb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的3DES算法,算法的第一个密钥和最后一个密钥相同,事实上就只需要两个密钥
【使用三个密钥的3DES算法】

函数:EVP_des_ede3_cbc(void),EVP_des_ede3(),EVP_des_ede3_ofb(void),EVP_des_ede3_cfb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的3DES算法,算法的三个密钥都不相同
DESX算法】
函数:EVP_desx_cbc(void)
说明:CBC方式DESX算法
RC4算法】
函数:EVP_rc4(void)
说明:RC4流加密算法。该算法的密钥长度可以改变,缺省是128位。
40RC4算法】
函数:EVP_rc4_40(void)
说明:密钥长度40位的RC4流加密算法。该函数可以使用EVP_rc4EVP_CIPHER_CTX_set_key_length函数代替。
IDEA算法】
函数:EVP_idea_cbc()EVP_idea_ecb(void),EVP_idea_cfb(void),EVP_idea_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的IDEA算法。
RC2算法】
函数:EVP_rc2_cbc(void),EVP_rc2_ecb(void),EVP_rc2_cfb(void),EVP_rc2_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的RC2算法,该算法的密钥长度是可变的,可以通过设置有效密钥长度或有效密钥位来设置参数来改变。缺省的是128位。
【定长的两种RC2算法】
函数:EVP_rc2_40_cbc(void),EVP_rc2_64_cbc(void)
说明:分别是40位和64CBC模式的RC2算法。
Blowfish算法】
函数:EVP_bf_cbc(void),EVP_bf_ecb(void),EVP_bf_cfb(void),EVP_bf_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的Blowfish算法,该算法的密钥长度是可变的
CAST算法】
函数:EVP_cast5_cbc(void),EVP_cast5_ecb(void),EVP_cast5_cfb(void),EVP_cast5_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的CAST算法,该算法的密钥长度是可变的

RC5算法】 

函数EVP_rc5_32_12_16_cbc(void), EVP_rc5_32_12_16_ecb(void), EVP_rc5_32_12_16_cfb(void),  EVP_rc5_32_12_16_ofb(void)

说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的RC5算法,该算法的密钥长度可以根据参数“numberofrounds”(算法中一个数据块被加密的次数)来设置,缺省的是128位密钥,加密次数为12次。目前来说,由于RC5算法本身实现代码的限制,加密次数只能设置为81216
128AES算法】
函数:EVP_aes_128_ecb(void)EVP_aes_128_cbc(void)PEVP_aes_128_cfb(void)EVP_aes_128_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的128AES算法
192AES算法】
函数:EVP_aes_192_ecb(void)EVP_aes_192_cbc(void)PEVP_aes_192_cfb(void)EVP_aes_192_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的192AES算法
256AES算法】
函数:EVP_aes_256_ecb(void)EVP_aes_256_cbc(void)PEVP_aes_256_cfb(void)EVP_aes_256_ofb(void)
说明:分别是CBC方式、ECB方式、CFB方式以及OFB方式的256AES算法上述的算法是0.9.7版本 支持的所有对称加密算法,关于算法的详细情况,请参看该算法的资料了或本系列后续的文章。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多