📄 des.h
字号:
//////////////////////////////////////////////////////////////////////////
/*
Provided by 王俊川, Northeastern University (www.neu.edu.cn)
Email: blackdrn@sohu.com
This product is free for use.
*/
//////////////////////////////////////////////////////////////////////////
/** \defgroup libcd 编码解码模块(libcd) */
/** \{*/
/** \file Des.h
* \brief 定义Des算法的加码解密函数 */
/** \}*/
/** \example DES_Test.cpp
* \brief Des加密解密的示例程序
*/
/** \enum
* \brief 用于指定操作类型的枚举 */
enum
{
ENCRYPT, /**< 加密操作*/
DECRYPT /**< 解密操作 */
};
//enum bool{false,true}; // if bool is not supported,use this or just replace with char
// and use 1 for true,0 for false;
//////////////////////////////////////////////////////////////////////////
// Type—ENCRYPT:加密,DECRYPT:解密
// 输出缓冲区(Out)的长度 >= ((datalen+7)/8)*8,即比datalen大的且是8的倍数的最小正整数
// In 可以= Out,此时加/解密后将覆盖输入缓冲区(In)的内容
// 当keylen>8时系统自动使用3次DES加/解密,否则使用标准DES加/解密.超过16字节后只取前16字节
/** \defgroup libcd 编码解码模块(libcd) */
/** \{*/
/** \brief Des加密/解密函数
* \param Out - 加密/解密结果输出缓冲区指针
* \param In - 加密/解密输入缓冲区指针,In 可以= Out,此时加/解密后将覆盖输入缓冲区(In)的内容
* \param datalen - 输入字符串的长度
* \param Key - 密钥
* \param keylen - 密钥长度
* \param Type - 操作类型,通过枚举值ENCRYPT指定加密操作,或者通过DECRYPT指定解密操作
* \return 加密/解密结果是否成功 */
bool Des_Go(char *Out,char *In,long datalen,const char *Key,int keylen,bool Type = ENCRYPT);
/** \brief 计算Des加密之后的长度,可以用于分配输出缓冲
* \param src_len - 输入的长度
* \return 返回输入值上取整到最近的一个8的整数倍的值 */
long Des_Length(long src_len);
/** \}*/
//////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -