求一段用VC6.0写的代码:
比如在对话框中的编辑框控件中获取用户输入的数据
m_PassWord.GetWindowText(pass);//m_PassWord是编辑框的CEdit型的变量,
求写一个简单的加密函数,比如字符串的ASCII码+10再返回加密后的数据,接收的数据必须pass里的数据,然后存入SQL数据库中,该字段名为PassWord,类型是varchar;主要问题是如何转换类型,pass是CString型的,求高手指教,100分送上,来一份完整的代码:加密方法和转换类型的代码!

解决方案 »

  1.   

    //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    //加密信息并输出,要指定长度,字串结尾'\0'也可以被加密。再次调用即解密。
    void EnCodeLen(char* pStr,UINT len)
    {
    for(unsigned int i=0;i<len;i++)
    {
    pStr[i]=~(pStr[i]^0x7e);
    }
    //打印加密后字串
    PrintHexLen(pStr,len);
    printf("\n\n");
    }
    //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    void PrintHexLen(char* pStr,int nLen)
    {
    for(int i=0;i<nLen;i++)
    {
    if(i%16==0)
    {
    printf("\"");
    if(i!=0)
    printf("\n\"");
    }
    printf("\\x%2x",*(BYTE*)(pStr+i)); //加byte*,输出没有ffffff。
    }
    printf("\";\n");
    }
      

  2.   

    CString str,str1;
    str =_T("12345");
    if (!str.IsEmpty())
    {
    for (int i=0;i<str.GetLength();i++)
    {
    str1 += (WCHAR)(str.GetAt(i)+10);
    }
    }
      

  3.   

    我要求的是基于对话框的编程,你的代码好像并不能存入数据表吧!依然感谢你,只是你那个估计是DOS界面的
      

  4.   

    数据库里面存放的密码,推荐的做法都是存储hash值。
      

  5.   


    这个简单啊,GetDlgItemText得到字符串,再调用EnCodeLen不就行了~
      

  6.   


    void CPassWordEdit::OnOK() 
    {
       CString PassWord;
    m_password.GetWindowText(PassWord);
        int mm=atoi(PassWord);
        int xmm=0;

    m_DataSet.SetConnection(::GetConnection());
    CString str;
    str.Format("Select * From tab_user where UserName = '%s'",::GetUserName());
    m_DataSet.Open(str);
    m_DataSet.SetFieldValue("PassWord",(LPCTSTR)Jiami(mm,xmm));
        m_DataSet.Save(); CDialog::OnOK();}int CPassWordEdit::Jiami(int x, int y)
    {
    int a=x;
    int b;
    b=(a+10)*2;
    y=b;
    return y;
    }
    这是我写的代码 能不能帮忙修改下