点击这里给我发消息 点击这里给我发消息

VC对密码加密和解密函数

添加时间:2013-12-7
    相关阅读: VC
    // Crypt.cpp: implementation of the CCrypt class.
    //
    //////////////////////////////////////////////////////////////////////
    #include \"stdafx.h\"
    #include \"Crypt.h\"
    #ifdef _DEBUG
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__;
    #define new DEBUG_NEW
    #endif
    // 常量
    #define C1 52845
    #define C2 22719
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
    CCrypt::CCrypt()
    {
    }
    CCrypt::~CCrypt()
    {
    }
    CString CCrypt::Encrypt(CString S, WORD Key) // 加密函数
    {
     CString Result,str;
     int i,j;
     Result=S; // 初始化结果字符串
     for(i=0; i<S.GetLength(); i++) // 依次对字符串中各字符进行操作
     {
      Result.SetAt(i, S.GetAt(i)^(Key>>8)); // 将密钥移位后与字符异或
      Key = ((BYTE)Result.GetAt(i)+Key)*C1+C2; // 产生下一个密钥
     }
     S=Result; // 保存结果
     Result.Empty(); // 清除结果
     for(i=0; i<S.GetLength(); i++) // 对加密结果进行转换
     {
      j=(BYTE)S.GetAt(i); // 提取字符
      // 将字符转换为两个字母保存
      str=\"12\"; // 设置str长度为2
      str.SetAt(0, 65+j/26);
      str.SetAt(1, 65+j%26);
      Result += str;
     }
     return Result;
    }
    CString CCrypt::Decrypt(CString S, WORD Key) // 解密函数
    {
     CString Result,str;
     int i,j;
     Result.Empty(); // 清楚结果
     for(i=0; i < S.GetLength()/2; i++) // 将字符串两个字母一组进行处理
     {
      j = ((BYTE)S.GetAt(2*i)-65)*26;
      j += (BYTE)S.GetAt(2*i+1)-65;
      str=\"1\"; // 设置str长度为1
      str.SetAt(0, j);
      Result+=str; // 追加字符,还原字符串
     }
     S=Result; // 保存中间结果
     for(i=0; i<S.GetLength(); i++) // 依次对字符串中各字符进行操作
     {
      Result.SetAt(i, (BYTE)S.GetAt(i)^(Key>>8)); // 将密钥移位后与字符异或
      Key = ((BYTE)S.GetAt(i)+Key)*C1+C2; // 产生下一个密钥
     }
     return Result;
    }
相关VC对密码加密和解密函数

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册