文件名称:RSADES
介绍说明--下载内容均来自于网络,请自行研究使用
DES和RSA混合加密DES密码体制主要由3方面组成:密钥生成、加密函数以及解密函数。该算法在VC6.0的平台下以C++来实现。子函数说明- Void SetKey(const char* Key, int len)
{
Memset(deskey,0,16)
Memcpy(deskey,key,len>16?16:len)
SetSubKey(&SubKey[0],&deskey[0])
Is3DES = len>8 ? (SetSubKey[1],&deskey[8]),ture) : false
}
Void SDES(char Out[8],char In[8],const PSubKey pSubKey,bool Type)
{
Static bool M[64],tmp[32],*Li=&M[0],*Ri=&M[32]
ByteToBit(M,In,64)
Transform(M,M,IP_Table,64)
If( Type == ENCRYPT){
For(int i=0 i<16 ++i){
Memcpy(tmp,Ri,32)
F_func(Ri,(*pSUBkEY)[I])
Xor(Ri,Li,32)
Memcpy(Li,tmp,32)
}
}else{
For(int i=15 i>=0 --i){
Memcpy(tmp.Li,32)
F_func(Li,(*pSubKey)[i])
Xor(Li,Ri,32)
Memcpy(Ri,tmp,32)
}
}
Transform(M,M,IPR_Table,64)
BitToByte(Out,M,64)
}
{
Memset(deskey,0,16)
Memcpy(deskey,key,len>16?16:len)
SetSubKey(&SubKey[0],&deskey[0])
Is3DES = len>8 ? (SetSubKey[1],&deskey[8]),ture) : false
}
Void SDES(char Out[8],char In[8],const PSubKey pSubKey,bool Type)
{
Static bool M[64],tmp[32],*Li=&M[0],*Ri=&M[32]
ByteToBit(M,In,64)
Transform(M,M,IP_Table,64)
If( Type == ENCRYPT){
For(int i=0 i<16 ++i){
Memcpy(tmp,Ri,32)
F_func(Ri,(*pSUBkEY)[I])
Xor(Ri,Li,32)
Memcpy(Li,tmp,32)
}
}else{
For(int i=15 i>=0 --i){
Memcpy(tmp.Li,32)
F_func(Li,(*pSubKey)[i])
Xor(Li,Ri,32)
Memcpy(Ri,tmp,32)
}
}
Transform(M,M,IPR_Table,64)
BitToByte(Out,M,64)
}
(系统自动生成,下载前可以参看下载内容)
下载文件列表
端午18分钟结束.sgs